Unit-тестирование контроллеров

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
bettrrr
Сообщения: 38
Зарегистрирован: 2010.02.18, 20:58

Unit-тестирование контроллеров

Сообщение bettrrr »

Не могу понять, как правильно тестировать контроллеры?
- Контроллер принимает параметры из реквеста, чтобы в тесте подставлять произвольные параметры, нужен метод setParam, которого в Yii нет.
- Как в тесте создать экземпляр полностью рабочего контроллера?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Unit-тестирование контроллеров

Сообщение samdark »

Тут нужные не unit-тесты, а функциональные: http://yiiframework.ru/doc/guide/ru/test.functional
bettrrr
Сообщения: 38
Зарегистрирован: 2010.02.18, 20:58

Re: Unit-тестирование контроллеров

Сообщение bettrrr »

Нет, функциональные тесты тут не нужны.
Вывод не предназначен для браузера, селениум тут не нужен.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Unit-тестирование контроллеров

Сообщение samdark »

Вывод идёт по HTTP? Если да, браузер его вполне переварит. И Selenium тоже.

Вообще если появилась необходимость тестирования контроллера и это unit, а не функциональные тесты — признак того, что вы переложили логику модели на контроллер. Тонкие модели и толстые контроллеры не очень подходят для модульных тестов сами по себе.
pirrat
Сообщения: 193
Зарегистрирован: 2009.04.03, 09:41

Re: Unit-тестирование контроллеров

Сообщение pirrat »

полностью согласен с Sam Dark!
введите в систему дополнительный уровень абстракции между моделями и контроллерами: сервис слой, куда перенесите бизнес логику (запросы к ARи тп) из ваших контроллеров, и к моделям обращайтесь только через этот слой. (в виду архитектуры AR в yii, методы сервис слоя могут находиться в моделях, а не отдельных классах).
Сервис слой легко будет тестировать, а контроллеры останутся тонкими.

небольшая презентация на эту тему:
http://www.slideshare.net/zfconf/zend-f ... ion-part-1
Ответить