Как смоделировать или заглушить сгенерированный объект .NetTiers объекта DataRepository - PullRequest
1 голос
/ 04 мая 2009

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

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

Ответы [ 2 ]

2 голосов
/ 13 августа 2009

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

Поскольку мне не слишком важны шаги воспроизведения записей в TypeMock и RhinoMocks, я выбрал более новый Moq, который с радостью будет издеваться над классами DataRepository или уровнем Service с минимальными трудностями. 1003 *

Если вы работаете в .NET 3.5, я бы порекомендовал это.

0 голосов
/ 14 мая 2009

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

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

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

...