Unity Nunit & Rhino Mocks - PullRequest
       26

Unity Nunit & Rhino Mocks

3 голосов
/ 14 сентября 2010

Кто-нибудь может дать мне хороший пример совместного использования насмешек, монахинь и единства носорога. Я читаю справку по каждому из них, но, похоже, нет хороших примеров проектов того, как вы могли бы использовать их вместе и как создавать проекты / тестовые проекты, используя их. То есть Вы создаете новые контейнеры ioc в своем тестовом проекте, которые указывают на фиктивные классы. Тогда, где носорог входит в это.

Спасибо за любую помощь.

Ответы [ 2 ]

5 голосов
/ 14 сентября 2010

Я использую все 3 из этих структур вместе. Похоже, ваша проблема в том, что вы пытаетесь выучить слишком много вещей одновременно.

Что касается использования контейнера IoC в тестах, мне никогда не приходилось делать это для модульных тестов - я просто использую макеты Rhino для передачи заглушек / mock для зависимых компонентов по мере необходимости.

В интеграционном тесте я вижу преимущество инициализации контейнера IOC в некотором коде, например, если вы используете шаблон MVP и хотите полностью заменить графический интерфейс заглушками.

Сначала я бы узнал о модульном тестировании более подробно. Я настоятельно рекомендую книгу Искусство модульного тестирования . Я нашел хорошую книгу, в которой сочетаются IOC, модульное тестирование и инфраструктура изоляции: Pro ASP.NET MVC - теперь есть 2-е издание , но, поскольку я его не читал Я не могу комментировать это. Книга не использует Unity, но если вы узнаете, как работает один фреймворк, легко переключиться на другой. Когда я перешел из Moq в Rhino, я нашел эту вики-страницу особенно полезной .

1 голос
/ 14 сентября 2010

Вам не нужно использовать IoC в своих юнит-тестах. Вы должны тестировать реализации интерфейсов, а не сами интерфейсы.

Пример: Person реализует IPerson. У вас должен быть класс PersonTests, который тестирует Person. Вы используете Rhino Mocks для создания макета или заглушки IPerson и проверки функциональности класса Person.

(По крайней мере, так я всегда делаю).

У вас есть отдельные тесты для проверки IoC (если вам нужно).

...