首页 > 解决方案 > 集成测试——微服务相互调用

问题描述

我在我的应用程序上运行集成测试时遇到问题。

我正在尝试在控制器上编写一个测试,该测试在同一解决方案中调用另一个 api 控制器。

所以基本上我有两个 APIS 一个在同一个解决方案中调用另一个。

我知道如何测试一个 API,但我似乎不知道如何运行另一个 API。

我已经尝试构建两个具有不同启动的独立测试服务器。但似乎没有什么会触发其他 api。

任何指针将不胜感激。

    [TestInitialize]
    public void Init()
    {
        var builder = new WebHostBuilder()
            .UseConfiguration(new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build())
            .UseStartup<Startup>();
        _server = new TestServer(builder);
        _client = _server.CreateClient();
    }


    [TestMethod]
    public void TestUser()
    {
        var request = _client.GetAsync("/api/v1/").Result;
        var jsonString = request.Content.ReadAsStringAsync().Result;
        var result = JsonConvert.DeserializeObject<bool>(jsonString);
        Assert.IsNotNull(result);
    }




    public async Task<bool?> GetUser()
    {
        bool? result = null;
        HttpResponseMessage response = await _client.GetAsync("/");
        if (response.IsSuccessStatusCode)
        {
            var responseContent = await response.Content.ReadAsStringAsync();
            result = JsonConvert.DeserializeObject<bool>(responseContent);
        }
        return result;

    }

标签: c#testing.net-core

解决方案


推荐阅读