2011-01-26 57 views
3

我是phpunit測試的全新產品。任何人都可以幫助我如何測試圖像中下方的線條。ZF表單驗證後未完成PHPunit測試

Img example

到目前爲止,我的測試是:

public function testCanSendEmail() 
{ 
    $formData = array(
     'subject' => 'test subject', 
     'email'  => '[email protected]', 
     'message' => 'test message', 
     'name'  => 'test name'); 

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

我的印象是,如果驗證成功,將貫徹整個動作?任何人都可以請解釋一下這裏發生的事情,以及這樣一個行動的正確測試。

+3

你可以在$ this-> dispatch('/ contact');下面的var_dump($ this-> getResponse() - > getBody());這將返回html正文,也許你將能夠看到是否顯示任何驗證錯誤消息。 – Marcin 2011-01-26 15:03:23

回答

1

明顯的解釋是$form->isValid返回FALSE

coverage report顯示if塊的有效形式從未得到執行。相反,else塊被執行。你需要找出的是爲什麼並消除原因。使用調試器並逐步執行執行流程以查看運行時發生的情況。

作爲替代方案,您可以將聯繫表單存根以返回TRUE。由於表單是硬編碼到控制器操作中的,因此請看http://sebastian-bergmann.de/archives/885-Stubbing-Hard-Coded-Dependencies.html關於如何操作。

另一種替代方法是:使代碼將聯繫表單發送到服務層,以允許在不必發出實際請求的情況下進行測試。