Как смоделировать или заглушить сгенерированный объект .NetTiers объекта DataRepository

StackOverflow https://stackoverflow.com/questions/821391

Вопрос

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

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

Это было полезно?

Решение

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

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

Предполагая, что вы используете .NET 3.5, я бы порекомендовал это.

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top