2010-02-22 39 views
0

我有一個看起來像下面這樣的控制器測試案例:喜歡<HEADER>,它創建了一個警告,當測試Zend框架控制器返回HTML5

class LoginControllerTest extends Zend_Test_PHPUnit_ControllerTestCase 
{ 
    public function testLoginFormIsShown() 
    { 
     $this->dispatch('/login'); 
     $this->assertQuery('form#login'); 
    } 
} 

但是我們的網站使用HTML5編寫幷包含元素ZF在輸出內部卡列斯的DomDocument :: loadHtml():

1) LoginControllerTest::testLoginFormIsShown 
DOMDocument::loadHTML(): Tag header invalid in Entity, line: 8 

我怎麼可以告訴ZF不會傳遞經過此錯誤,或讓PHPUnit來不把警告作爲一個錯誤?我不想拒絕整個測試套件的錯誤報告。

編輯:

添加@ExpectedException PHPUnit_Framework_Error_Warning的測試方法supresses失敗,但隱藏任何後續錯誤(事實上甚至不運行查詢)。

再次編輯:

似乎沒有成爲一個明智的決議,這使我已經結束了在加入破斷言前面的@現在。

+0

您是否使用Zend_View,如果是,視圖的doctype的值是否設置爲Zend_View_Helper_Doctype :: HTML5? – Cez 2010-02-23 08:43:26

+0

Cez - 是的,我將把它作爲一個ZF錯誤提交。 – 2010-02-23 15:23:58

回答

1

看起來像DOMDocument與html5的問題。您可以嘗試Xpath:

$this->assertXpath("//form[@id = 'login']"); 
+0

XPath似乎也首先調用 - > loadHtml(),以便將DomDocument警告傳遞給PHPUnit。 – 2010-02-22 13:25:14