我是phpunit测试的新手。任何人都可以帮助我如何测试图像中的下面的行。
到目前为止,我的测试是:
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');
我的印象是,如果验证成功,它会贯穿整个行动吗?任何人都可以请解释这里发生的事情,以及这种行动的正确测试。
答案 0 :(得分:1)
明显的解释是$form->isValid
返回FALSE
。
coverage report表示有效表单的if
块从未执行过。而是执行了else块。你需要找出的是为什么并消除原因。使用调试器并逐步执行执行流程以查看运行时会发生什么。
作为替代方案,您可以存根联系表单以返回TRUE
。因为表单已硬编码到控制器操作中,所以请查看http://sebastian-bergmann.de/archives/885-Stubbing-Hard-Coded-Dependencies.html如何执行此操作。
另一种选择:使代码将联系表单发送到服务层,以便在不必提出实际请求的情况下对其进行测试。