在ZF表单验证之后,PHPunit测试没有完成

时间:2011-01-26 14:04:17

标签: php zend-framework phpunit

我是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 个答案:

答案 0 :(得分:1)

明显的解释是$form->isValid返回FALSE

coverage report表示有效表单的if块从未执行过。而是执行了else块。你需要找出的是为什么并消除原因。使用调试器并逐步执行执行流程以查看运行时会发生什么。

作为替代方案,您可以存根联系表单以返回TRUE。因为表单已硬编码到控制器操作中,所以请查看http://sebastian-bergmann.de/archives/885-Stubbing-Hard-Coded-Dependencies.html如何执行此操作。

另一种选择:使代码将联系表单发送到服务层,以便在不必提出实际请求的情况下对其进行测试。