Интеграционное тестирование
Если вы заинтересованы (судя по вашим комментариям) в тестировании получения данных из базы данных, вы будете выполнять integration test
.
Разница с unit testing
для этих типов тестов заключается в том, что они выполняются реже - лучшие практики требуют, чтобы вы выполняли их перед переходом на контроль версий.
Причина в том, что они медленнее, и вы попадете в реальную базу данных (по крайней мере, в тестовую базу данных). При каждом запуске вам нужно будет стереть базу данных или не фиксировать изменения - вы, похоже, знаете, что делаете здесь, поэтому я оставлю вопрос о том, как вы справитесь с этим.
Mocking
Что касается тестирования вашей логики, которая использует базу данных - mocking
и dependency injection
- это путь.
Я использую Moq - это, пожалуй, самый простой фреймворк для использования. Это на самом деле не только для фиктивных объектов (несмотря на название), и вы можете создать с его помощью заглушек и подделок .
Псевдо-издевательство выглядит следующим образом (на примере БД):
- Настроить макет
- Скажите ему, что делать (ожидать) - например, вызов для сохранения.
- Используйте SUT (тестируемая система)
- Проверьте макет - в этом случае метод сохранения был вызван в вашей SUT.
Для получения дополнительной помощи - проверьте Google - есть несколько хороших ресурсов для модульного тестирования и насмешек.