Модульное тестирование подразумевает также тестирование контроллеров / представлений? - PullRequest
4 голосов
/ 15 августа 2010

Я хочу точно понять, что означает модульное тестирование.

Из того, что я понял до сих пор, это подразумевает тестирование модели и всех ее открытых методов.

Это правильно?

А как насчет контроллеров?Подразумевает ли модульный тест тестирование контроллеров / представлений тоже?

Может ли кто-нибудь просветить меня в этом.

Ответы [ 4 ]

2 голосов
/ 16 августа 2010

По сути, если у него нетривиальная бизнес-логика, его следует тестировать модулем.

Когда вы тестируете контроллер, если вы уже тестировали нижние уровни, вы можете смоделировать нижние уровничтобы ваш тест проходил быстрее, но все должны иметь тест, все открытые и защищенные методы, а не только публичные, IMO.

2 голосов
/ 15 августа 2010

Модульное тестирование как концепция существует вне MVC.

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

1 голос
/ 16 августа 2010

Обычно ваша модель «тупая» в том смысле, что она не содержит никакой логики, только свойства и состояние. Таким образом, модульные тесты сосредоточены вокруг тестирования вашего репозитория и сервисов, которые взаимодействуют и используют объекты домена и (если вы их используете) объекты суммарной модели.

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

1 голос
/ 16 августа 2010

Модульное тестирование, как следует из названия, тестирует кодовый блок.

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

Если контроллер должен что-то выводить в представление, вы можете проверить это.

Иногда вам может понадобиться создать фиктивный объект, чтобы упростить задачу. Например, вы можете смоделировать DAO или HttpResponse.

...