Вопрос:
Как запустить автоматические интеграционные тесты с Xunit и TestServer с клиентом службы, поразив конечные точки службы с помощью TestServer? Суть проблемы заключается в том, как внедрить NuGet в интеграционные тесты, в дополнение к «обычным» интеграционным тестам.
Ожидаемый результат:
Контрольный пример вызовет метод в / в ServiceClient, который снова вызовет конечные точки службы в экземпляре TestServer, выполняя CRUD для БД. Это будет выполняться через ServiceClient, а не через «generi c» HttpClient, созданный TestService.
То, что я пробовал
Интеграционные тесты для фактической службы Конечные точки работают, и вся логика c тестируется от конечной точки до БД.
Я возился с TestServer, пытаясь использовать его параллельно, но он просто не работает. У меня такое ощущение, что он просто не хочет запускать два приложения одновременно.
Я также прочитал много документации и погуглил, но я получаю информацию только о запуске одного сервиса.
Неоднозначность «Клиент»
- ServiceClient = Клиент, распространяемый как NuGet, который абстрагирует связь с конечными точками службы
- RestClient = Оболочка / абстракция HttpClient для добавления токена аутентификации в ServiceClient
Структура службы / решения
- Service.Name (Classlib)
- Service.Name.Api
- Service.Name.Client (Classlib, автономный Nuget)
- Service.Name.Tests (Xunit; модульные и интеграционные тесты)
О клиенте
Используется IConfiguration
, настройка и регистрация всех зависимостей (с использованием vanilla DI в asp. net 3.1). Конфигурация (используется для настройки базового URI, аутентификации и т. Д. c.) Используется RestClient / HttpClient для достижения конечных точек службы.
Я действительно не видел никакого очевидного кода для вставьте сюда, но если есть какие-то подробности или нужна дополнительная информация, дайте мне знать, и я обновлю вопрос с тем, что нужно: -)