Вы не тестируете взаимодействие с базой данных. Этот тип тестирования называется интеграционным тестированием. Для этого вы можете использовать ваши обычные инструменты тестирования (NUnit, MSTest и т. Д.), Но лучше всего разделить интеграционные тесты в отдельном проекте, использовать выделенную тестовую базу данных и запустить эти тесты в транзакции (например, использовать TransactionScope ), который вы откатываете. Это гарантирует, что данные не изменятся, а поведение ваших тестов предсказуемо, что очень важно.
Если вы можете, постарайтесь спроектировать ваше приложение таким образом, чтобы было легко подделать все внешние источники, такие как ваша база данных, чтобы вы могли запускать (обычно более быстрые) модульные тесты. Это однако не легко. Особенно, когда имеешь дело с существующим приложением, которое не было разработано для тестирования. В этом сценарии я нашел хороший способ начать интеграционное тестирование.