Использование phpspec для тестирования команд Symfony2

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

Я немного застрял здесь, потому что документы (http://symfony.com/doc/master/cookbook/console/console_command.html#testing-commands) только подскажите, как тестировать команды с помощью phpunit.

Даже если бы я использовал аналогичный подход (каким-то образом создав ядро ​​и создав экземпляр рассматриваемой команды) в спецификациях, я думаю, что это не соответствовало бы идее описания поведения. Я бы только указал, является ли вывод правильным или нет, но не вызывает ли команда правильные методы и так далее.

Кто-нибудь использовал phpspec для успешного описания команд Symfony2? Каков был бы осуществимый подход к этому?

Спасибо


person Coruja    schedule 13.11.2013    source источник


Ответы (2)


Вы можете использовать PhpSpec для тестирования Command в режиме модульного тестирования — это не так уж плохо, но в итоге вы получите много насмешек над вводом/выводом.

Лучше, чтобы ваши команды были красивыми и небольшими, с делегированием их другим службам, которые прошли модульное тестирование, — тогда вы сможете покрыть их с помощью Behat и убедиться, что они работают.

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

person Ciaran McNulty    schedule 19.04.2014
comment
Да, то, что сказал Киаран. Тем не менее, попытка специфицировать команды — хорошее упражнение. Это поможет понять, какие вещи вы должны делегировать службам, и научит вас, как сделать ваши команды простыми. Посмотрите, что я пробовал здесь: gist.github.com/jakzal/8455718 - person Jakub Zalas; 17.02.2015

Вы должны использовать Behat для этого, а не phpspec

person user2156980    schedule 28.11.2013