我目前正在尝试在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 \ Tests \ Controller \ ReportControllerTest :: testNew 无法验证#form_description是 声明false为真的失败。
如何修复我的测试以获取抓取工具过滤器返回的元素的名称?
答案 0 :(得分:0)
Docs说:
Crawler的一个实例表示DOMElement对象的集合(SplObjectStorage),它们基本上是可以轻松遍历的节点
所以,根据文档,你应该修改你的代码:
$formCrawler = $crawler->filter('#form_description')->first();
foreach($formCrawler as $domElement) {
$this->assertTrue(strtolower($domElement->nodeName) == 'textarea', "Unable to verify #form_description is <textarea>");
}