首页 > 解决方案 > API调用另一个API时的集成测试

问题描述

我在同一个解决方案上有两个 API。我们称它们为 API-1 和 API-2。

API-1 计算一些东西,其中一个变量是通过 http 客户端从 API-2 获取的。

当我为 API 编写集成测试时,我为 API-1 做了一个新的 TestServer 实例,我将 API-2 调用嵌套在 API-1 中,但我拥有的测试服务器仅适用于 API-1。

这是我已经尝试过的(但没有用):

               .UseStartup<JurosAPI.Startup>());
            _server.BaseAddress = new Uri("http://localhost:56149/");

            _client = _server.CreateClient();

            _server2 = new TestServer(new WebHostBuilder()
               .UseStartup<CalculadoraJurosAPI.Startup>().ConfigureTestServices(
                 services =>
                 {
                     //Inject HttpClient that's able to connect to server 1.
                     services.AddSingleton(typeof(HttpClient), _client);
                 }));

            _client2 = _server2.CreateClient(); 

即使这样做,我也无法在测试中从 API-1 调用 API-2。

是否可以在该集成测试中调用这两个 API?我的代码设计不好?我应该模拟这个嵌套的 API 调用吗?我怎么做?

标签: asp.net-coreintegration-testingasp.net-core-testhosttestserver

解决方案


推荐阅读