Так это плохая практика использования вашей БД в модульных тестах?
Плохо использовать базу данных в модульных тестах, но не в интеграционных тестах. Идея модульных тестов состоит в том, чтобы протестировать различные уровни вашего приложения в изоляции . Привязка их к базе данных делает их больше не модульными тестами, поскольку они зависят от базы данных, поэтому они противоречат одному из самых фундаментальных правил модульного теста.
Поэтому, когда придет время проверить ваш реальный уровень доступа к данным (тот, который попадает в базу данных), вы должны использовать интеграционные тесты. В этих тестах вы должны установить тестовую базу данных. В идеале эта база данных должна находиться в известном состоянии для каждого интеграционного теста. Для этого у вас могут быть сценарии, которые создают базу данных в настройке тестового устройства и выполняют весь интеграционный тест в одну атомарную транзакцию, которая будет откатываться в тестовом устройстве до разрыва, чтобы база данных снова находилась в известном состоянии для следующий интеграционный тест.
Другой подход (если вы используете ORM) заключается в настройке уровня доступа к данным в интеграционном тесте для использования базы данных в памяти (такой как SQLite ), которая будет создана и обработана для каждый тест.