У меня есть основной проект asp.net с DAL> Repos> Сервисы> Web API (контроллеры).
Я хочу реализовать интеграционные тесты, в которых я хочу протестировать объект через все уровни + экземпляр базы данных.
Я пытаюсь найти наименее навязчивый способ его настройки. После долгих чтений я придумал:
- создание отдельного экземпляра БД (
testDatabase
) на компьютере (локальном или на сервере), где env = "Testing"
- есть
appsettings.Testing.json
, где я определяю db: "testDatabase"
в отличие от appsettings.json
, где у меня есть db: "productionDatabase"
)
- у меня есть ключи db в переменных env (или хранилище ключей)
- при выполнении моих тестов я установил
UseEnvironment("Testing")
Таким образом, мне не нужны никакие дополнительные настройки в реальном тестовом проекте, не нужно издеваться над моими репозиториями с помощью _textDBContext
и т. Д ... просто переключите среду и запустите ее.
Во время чтения я натолкнулся на несколько довольно сложных установок с множеством вещей в самом тестовом проекте (создание репозиториев с тестом dbContext
, отдельные Startup
и т. Д.), Которые направлены на решение той же проблемы. , По сравнению с этим, моя установка кажется смехотворно простой, что заставляет меня задуматься:
Я что-то упустил?
Есть ли проблемы с этой настройкой?
(я использую xUnit, но это не должно иметь значения)