Symfony 2功能测试

问题描述:

我目前正在尝试在Symfony 2中为我的每条路线编写功能测试。现在我正在测试以确保表单的所有元素都存在,并且它们是正确的输入类型。例如:Symfony 2功能测试

// Make sure there is a description field 
$this->assertTrue($crawler->filter('#form_description')->count() === 1); 
$this->assertTrue($crawler->filter('#form_description')->first()->text() == 'textarea', "Unable to verify #form_description is <textarea>"); 

不幸的是,text()似乎不会返回任何结果,我不知道为什么。与此测试运行PHPUnit给出以下输出:

有1次失败:

1)fixnit \ ReportBundle \测试\控制器\ ReportControllerTest :: testNew 无法验证#form_description是 失败断言错误是真的。

如何解决我的测试问题以获取搜寻器筛选器所返回元素的名称?

Docs履带说:

履带的实例代表一个DOMElement对象的一组(SplObjectStorage),这是基本节点,您可以轻松地穿越

因此,根据docs,你应该修改你的代码是这样的:

$formCrawler = $crawler->filter('#form_description')->first(); 
foreach($formCrawler as $domElement) { 
    $this->assertTrue(strtolower($domElement->nodeName) == 'textarea', "Unable to verify #form_description is <textarea>"); 
}