Интеграционный тест, когда 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? Как я могу это сделать?

0 ответов

Другие вопросы по тегам