должен ли мой UnitTest издеваться над моим UnitOfWork, Repository и Context или только Context? - PullRequest
0 голосов
/ 12 августа 2011

Я немного новичок в модульных тестах, так что, надеюсь, этот вопрос имеет смысл.

Мои настройки: Visual Studio 2010 Entity Framework 4.1 Moq

У меня есть класс Service, расположенный в моем BAL, который использует UnitOfWork в моем DAL. UnitOfWork управляет доступом к различным репозиториям, которые в свою очередь обращаются к базе данных через объект Context.

Я хотел бы создать модульный тест для открытого метода класса обслуживания, который отвечает за некоторую очень сложную логику типа "GetNextObject", использующую лямбда-выражения.

Вопрос: Я могу очень легко смоделировать мой DBContext и создать DBSet объектов, с которыми я хочу протестировать свой метод Services (класс обслуживания по существу запрашивает хранилище). Это правильный способ сделать это или это скорее интеграционный тест? Посмеиваясь над контекстом, я удалил базу данных, но я все еще использую классы UnitOfWork и Repository. Должен ли я вместо этого делать сложную насмешку над всеми этими объектами?

Спасибо! AFrieze

1 Ответ

0 голосов
/ 13 августа 2011

Предполагая, что ваш сервис зависит только от хранилища и юнитов, вам не нужно издеваться над DbConext, не так ли? Как правило, мы не дразним DbContext главным образом потому, что тестировать особо нечего, поскольку репозиторий / unitofwork в основном являются обертками для dbcontext. Для того, чтобы протестировать ваши сервисы, должно хватить насмешливого хранилища и юнитофора. Если вы хотите проверить работу БД, сделайте интеграционный тест.

...