Лучший способ тестирования репозиториев, использующих DbContext - PullRequest
5 голосов
/ 24 декабря 2011

В моих проектах я использую шаблон репозитория, чтобы легко выполнить модульное тестирование моего приложения ASP.NET MVC. Это позволяет мне легко издеваться над объектами.

Однако я вообще не проверяю логику репозитория.

Например, см. Ниже сообщение в блоге:

Как работать с универсальными репозиториями в ASP.NET MVC и их модульное тестирование путем насмешки

Это то, что я делаю и как я тестирую свое приложение ASP.NET MVC.

Как вы думаете, какой лучший способ тестирования репозиториев, использующий класс DbContext для доступа к данным?

  • Непосредственно получать данные из базы данных? (Я думаю, что это будет худшим, но мне интересно, ваши мысли)
  • Должен ли я создать поддельную базу данных и заполнить ее фиктивными данными и указать EF для подключения к этой базе данных?

И любой другой подход, который вы можете предложить.

EDIT:

Я использую EF 4.2 здесь.

1 Ответ

7 голосов
/ 26 декабря 2011

Репозиторий - это точка входа в базу данных, поэтому единственный способ проверить ее - использовать интеграционный тест и работать с тестовой базой данных. Вы можете использовать транзакционные тесты, где каждый тест будет настраивать транзакцию и откат в конце теста, чтобы сохранить данные теста одинаковыми для всех тестов.

...