Интеграционное тестирование между веб-приложением и WebAPI - PullRequest
0 голосов
/ 21 октября 2019

Я использую WebApplicationFactory<TStartup> для интеграционного тестирования веб-приложения .NET Core 3.0.
Работает, когда нужно протестировать только одно веб-приложение.

Но что, если веб-приложению необходимо отправить запрос в приложение WebAPI. Мне нужно как-то создать экземпляр как WebApplicationFactory<Web.Startup>, так и WebApplicationFactory<Api.Startup>.

Я пробовал разные варианты, но не повезло. Может кто-нибудь с опытом подобной задачи указать мне правильный путь.

PS Внутри веб-приложения есть встроенный внутренний HttpClient, который используется внутри контроллеров для отправки запросов в API:

services.AddHttpClient<IInternalApiClient, InternalApiClient>();

1 Ответ

0 голосов
/ 21 октября 2019

Ты бы не стал. То, о чем вы говорите, будет «системным тестом», то есть тестированием всей системы. Интеграционное тестирование подразумевает совместную работу всех компонентов одного приложения. Таким образом, вы будете издеваться над классом обслуживания, который вызывает ваш API: InternalApiClient. В настройках веб-хоста вашего тестового сервера вы создадите макет IInternalApiClient и установите соответствующие методы для возврата фиктивных данных вместо фактического вызова API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...