2010-02-22 33 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