Интеграционный тест, когда API вызывает другой API
У меня есть два API в одном решении. Назовем их API-1 и API-2.
API-1 что-то вычисляет, одна из переменных получается из API-2 с помощью http-клиента.
Когда я писал интеграционный тест для API, я создал новый экземпляр TestServer для API-1, у меня есть этот вызов 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-2 из API-1 на тестах.
Можно ли вызвать два API в этом интеграционном тесте? У меня плохой дизайн в моем коде? Должен ли я издеваться над этим вложенным вызовом API? Как я могу это сделать?