ZendFramework Тестирование контроллеров

Absinthe

жожо
Наткнулся на мнение (http://stackoverflow.com/a/10668955/966972):
No "controller" testing.
Inject models and value objects into your services.
Inject services into your controllers.
Test models, value objects, and services.
Use a JavaScript testing framework to test your JS -- There are tons of good options out there that will allow you to mock your Ajax calls.
Тестируете контроллеры?
Каким образом: внешним запросом, или подтасовкой request-объекта?

Что он конкретно имел ввиду под сервисами?
 

Ragazzo

TDD interested
Ну если перефразировать его, то он просто тестирует все составляемые компоненты системы, поэтому в его случае отпадает надобность тестировать собираемую из компонентов систему. Вообще я бы не тестировал контроллеры слишком уж как-то глупо, покрыл основную часть тестами и ок.
 

Absinthe

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

И каким образом из вышеперечисленных это делать?

Тестирование по HTTP не даст изменить объекты движка, и придется часть данных переносить из теста в тест (куки с авторизацией, к примеру).
А тестирование методом подтасовки request может обломаться, из-за того, что "фреймворк забросили, части функционала нет", как случилось с ZendFramework: http://framework.zend.com/issues/browse/ZF-3791
 

AmdY

Пью пиво
Команда форума
Лучше всего такие вещи тестить тупо селениумом, а не заморачиваться обёртками под фреймворк. Мой опыт подсказывает, что подобные тесты эффективнее юнит тестов для отдельных компонентов. Единственное, что поддерживать их сложно. если проект динамический.
 
Сверху