Тест PHPunit не прошел после проверки формы ZF - PullRequest
3 голосов
/ 26 января 2011

Я новичок в тестировании phpunit.Может кто-нибудь помочь мне о том, как проверить строки ниже на изображении.

Img example

Пока мой тест:

public function testCanSendEmail()
{
    $formData = array(
        'subject'   => 'test subject',
        'email'     => 'test@mail.com',
        'message'   => 'test message',
        'name'      => 'test name');

    $this->request
        ->setMethod('POST')
        ->setPost($formData);
    $this->dispatch('/contact');
    $this->assertAction('win');

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

1 Ответ

1 голос
/ 19 марта 2011

Очевидное объяснение состоит в том, что $form->isValid возвращает FALSE.

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

В качестве альтернативы вы можете заблокировать контактную форму для возврата TRUE.Поскольку форма жестко запрограммирована в действии контроллера, посмотрите на http://sebastian -bergmann.de / archives / 885-Stubbing-Hard-Coded-Dependencies.html как это сделать.

Еще одна альтернатива: создайте код для отправки контактной формы в сервисный уровень, чтобы можно было проверить это без необходимости выполнения фактического запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...