PS - Я согласен с тем, что говорит Ладислав Мрнка, однако я думаю, что в некоторых случаях совершенно неизбежно, что вам нужно издеваться над DbSet и запускать юнит-тесты против него. Хотя вы должны помнить, что вам не следует тестировать запросы LINQ, чтобы убедиться, что они возвращают правильные данные. Вот где интеграционные тесты более применимы.

ледовал некоторую информацию о методах, которые я мог бы использовать длямодульное тестирование DbContext, Я хотел бы добавить некоторыеданные в памяти к контексту, чтобы мои тесты могли работать против него. Я использую подход Database-First.

Две статьи, которые я нашел наиболее полезными, былиэто а такжеэто, Этот подход основан на создании интерфейса IContext, который будут реализованы как MyContext, так и FakeContext, позволяя имитировать контекст.

Тем не менее, я стараюсь избегать использования репозиториев для абстрагирования EF, так какзаостренный по несколько люди, так как EF 4.1 уже реализует репозиторий и шаблоны рабочих единиц через DbSet и DbContext, и я действительно хотел бы сохранить все функции, реализованные командой EF, без необходимости поддерживать их самостоятельно с помощью общего репозитория, как я уже делал в других проект (и это было отчасти больно).

Работа с IContext приведет меня к тому же пути (или не так?).

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

Я делаю что-то не так или это может привести к некоторым проблемам, которых я не ожидаю?

Ответы на вопрос(5)

Ваш ответ на вопрос