Как мне проверить класс Zend_Form? - PullRequest
2 голосов
/ 26 февраля 2010

Как мне выполнить модульное тестирование класса форм Zend_Form, который я написал для своего приложения?
Я стремлюсь обеспечить 100% покрытие кода, поэтому простого тестирования каждого контроллера, который его использует, недостаточно, но я мог бы что-то упустить в подходе UnitTest

Ответы [ 3 ]

0 голосов
/ 26 февраля 2010

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

0 голосов
/ 26 февраля 2010

Как насчет записи тестовых случаев, которые POST формируют данные в вашем контроллере действий? Таким образом, вы можете создать столько разных пользовательских входных данных, сколько захотите, и вы можете проверить, работает ли проверка вашей формы или вы получаете правильные сообщения об ошибках.

0 голосов
/ 26 февраля 2010

Стенд для юнит-тестирования для тестирования юнитов, поэтому вы должны

  • протестируйте ваш класс на основе Zend_Form - вы можете передать любые тестовые данные для заполнения метода
  • чем тестировать свой контроллер отдельно - создайте макет для вашего класса на основе Zend_Form, потому что вы собираетесь протестировать его снова, для этого требуется какая-то фабрика или внедрение зависимостей в контроллер.

Класс LoginForm в примере из комментария не предоставляет больше функциональности, чем настройка элементов, валидаторов, декораторов и т. Д., Так что это можно легко проверить. Если вы хотите протестировать контроллер, вы должны передать его (например, в качестве параметра конструктора, см. Внедрение зависимости ) в некотором макете LoginForm. Если вы хотите протестировать контроллер и сформировать интеграцию (которая не является модульным тестом, но это можно сделать и с помощью PhpUnit), вы можете использовать метод контроллера setRequest для установки поддельных данных запроса.

...