У нас есть огромное приложение, которое содержит
- Веб-уровень — MVC
- Сервисный уровень — веб-API
- Слой домена
- Уровень БД — сначала код EF 5
мы написали сотни модульных тестов, чтобы избежать дальнейших проблем. Теперь мы хотим написать интеграционные тесты для базы данных.
До сих пор мы использовали xUnit для модульных тестов. Но я не мог быть уверен, как мы можем двигаться дальше, и у меня есть несколько вопросов.
- Вы предлагаете написать один подход к интеграционному тесту «Сверху вниз». Итак, написание тестового метода, который использует действие MVC, которое проходит через все уровни и влияет на базу данных, или разделение на части, такие как Web-API, API-DB?
- Я искал xUnit о Fixtures, но не смог найти пример использования IUseFixture против Entity Framework.
- Мы используем миграцию Code First, поэтому я думаю, что инициализировать базу данных будет легко, потому что все файлы миграции в наших руках. Но как я могу использовать их для создания тестовой базы данных?
- Наша команда состоит из нескольких разработчиков, поэтому важно изолировать каждого из них. Я могу использовать для этого сервер базы данных разработки или локальную базу данных, но опять же я не смог найти способ изменить строку подключения в соответствии с пользователем.
Не сейчас, а в ближайшем будущем мы собираемся запустить эти тесты со сборками TFS 2012.