我在同一个解决方案上有两个 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 调用吗?我怎么做?