Тестирование интеграции SpecFlow с шаблонами базы данных
Я пытаюсь настроить SpecFlow для интеграции / приемочного тестирования. У нашего продукта есть база данных (хотя и не огромная) в Sqlite.
Это на самом деле оказывается немного липкой точкой; как мне смоделировать базу данных для тестов?
Я хотел бы знать, какие шаблоны используют другие для проведения интеграционных / приемочных испытаний с резервными базами данных.
Я могу думать о следующих подходах:
Скомпилируйте базу данных в сборку с тестами, затем выполните теневое копирование для каждого теста. Кажется, медленно, хотя.Я мог бы создать базу данных в памяти и заполнить ее заранее определенными данными.Я мог бы создать базу данных в памяти и каким-то образом заставить Гивенса заполнить базу данных. Кажется, что это ужасно раздувает тесты, но может дать им больший контроль и сделать тесты менее хрупкими.Я мог бы абстрагировать каждое взаимодействие с базой данных и использовать макеты. Не влюблен в эту идею, так как я хотел бы использовать это для проверки взаимодействия с базой данных.Скомпилируйте базу данных в тесты и положитесь на код очистки, чтобы вернуть ее в базовое состояние (этот мне кажется хитрым). Не хочу делать это с транзакциями, так как с некоторыми тестами будет несколько взаимодействий (поэтому напишите элемент, а затем попытайтесь прочитать его обратно с другими привилегиями).