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