Отладка .NetCore API из xUnit - PullRequest
       100

Отладка .NetCore API из xUnit

0 голосов
/ 03 октября 2018

Я разработал два проекта на основе .Net Core 2.1.

  1. WebAPI
  2. xUnit

WebAPI использует IIS в качестве платформы хостинга.xUnit подключается к WebAPi с помощью класса HttpClient для использования http.

Я попытался подключиться к службе w3wp , чтобы перехватить метод Get в контроллере, но он не был успешным.Кроме того, я запустил еще одну среду и запустил Debug в проекте WebAPI, но это не помогло.

Кто знает, где проблема и как ее решить.

1 Ответ

0 голосов
/ 03 октября 2018

На docs.microsoft.com есть отличное руководство о том, как это сделать: https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.1

В основном вам необходимо установить пакет Microsoft.AspNetCore.Mvc.Testing в вашПротестируйте проект и получите класс «фабрики тестовых приложений» из WebApplicationFactory в своем тестовом проекте.Затем в каждом из ваших тестовых классов вы захотите создать экземпляр класса, а затем использовать WebApplicationFactory.CreateClient для получения экземпляра HttpClient.Затем вы используете экземпляр HttpClient для вызова конечных точек API по мере необходимости.

По сути, приложение WebAPI будет работать в том же процессе, что и ваши тесты, что значительно упрощает отладку.

Вы будететакже, возможно, вы захотите добавить файл конфигурации тестовой среды для тестируемого приложения (например, appsettings.Test.json) и настроить WebApplicationFactory на использование одной и той же среды для тестовых прогонов, чтобы тестовые прогоны не затрагивали вашу среду разработки (включая базу данных), и напишите некоторый код в классе «test app factory» для повторного создания / очистки тестовых баз данных или других хранилищ, используемых в ваших тестах.

...