Я смотрел различные видео и читал различные блоги, в которых рассказывалось о модульном тестировании репозитория.
Самым распространенным шаблоном является создание Fake-репозитория, который реализует тот же интерфейс, что и настоящий. Тогда поддельный использует внутренний словарь или что-то.
Таким образом, вы фактически тестируете логику поддельного репозитория, который никогда не будет запущен в производство.
Теперь вы можете использовать внедрение зависимостей для вставки фиктивного DBContext с помощью некоторого интерфейса IDBContext. Однако затем вы просто тестируете каждый метод репозитория, который в действительности просто пересылает dbcontext (который является поддельным).
Так что, если каждый метод репозитория не имеет много логики перед вызовом dbcontext, тогда он кажется немного бессмысленным?
Я думаю, что было бы лучше иметь тесты для репозитория в качестве интеграционных тестов и действительно ли они попадут в базу данных?
Новый EF 4.1 делает это простым, поскольку он может создавать базу данных на лету на основе строки подключения в вашем тестовом проекте, затем вы можете удалить ее после запуска тестов с использованием методов dbcontext.Database.