2009-05-04 1 views
1

Я использую нокировые носки для модульного тестирования, издеваясь над объектами. Наш DAL использует codemith для генерации кода из шаблонов .netTiers, который создает эти классы DataRepository, которые содержат все методы транзакции типа CRUD для источника данных. В модульном тестировании я пытаюсь высмеять этот объект репозитория данных, который не имеет класса интерфейса для использования в качестве заглушки.Как насмехаться или заглушить .netTiers сгенерированный объект DataRepository

Вкратце, кто-нибудь успешно использовал Rhino mocks для издевательства .netTiers, сгенерированного DataRepository, избегая необходимости в тестовой базе данных и реальных транзакциях против источника данных, который необходимо снести в конце?

ответ

2

Я некоторое время размышлял над этим, так как никто еще не активизировал и не написал ложную реализацию DataRepository для netTiers (насколько мне известно).

Как я не особо забочусь о шагах записи записей TypeMock и RhinoMocks, я выбрал новый Moq, который будет радостно издеваться над классами DataRepository или уровнем сервиса, который вызывает себя с минимальными проблемами.

Предполагая, что вы на .NET 3.5, я бы порекомендовал его.

+0

Все свойства класса DataRepository являются статическими, поэтому необходимо выполнить больше работы, чем может сделать Moq. – CoderDennis

0

Короче говоря, Rhino может только имитировать типы, которые являются интерфейсами или негерметичными классами. И тогда вы можете только заглушить методы, которые являются виртуальными или абстрактными.

Если ваша цель состоит в том, чтобы заменить DataRepository макетной реализацией, я думаю, вам нужно будет изучить более сложные фальшивые фреймворки, такие как TypeMock.

Если вы контролируете шаблоны CS, другой вариант заключается в использовании шаблонов для генерации ложных реализаций DataRepository.

Смежные вопросы