我是使用Symfony 2进行PHPUnit测试的新手。
我正在尝试单击链接并测试其是否重定向到包含某些文本的页面。 我的代码是:
$client = static::createClient();
$crawler = $client->request('GET', '/Site');
$link = $crawler->filter('a:contains("Click for Report")')->eq(1)->link();
$crawler->$client->click($link);
$this->assertEquals(200, $client->getResponse()->getStatusCode());
$this->assertContains('Detail Report',$client->getResponse()->getContent());
每次运行此测试时都会出现错误:“InvalidArgumentException:当前节点列表为空。” 代码>>
$link = $crawler->filter('a:contains("Detail Report")')->eq(1)->link();
我不知道为什么节点是空的。
任何帮助都会受到高度赞赏! 提前谢谢。
答案 0 :(得分:2)
首先:这不是单元测试 - 这是一项功能测试。
关于你的测试:从理论上讲,它应该可行,但如果没有HTML,很难说出问题出在哪里。有可能只是eq(1)
,因为eq()
的参数是从0开始的,而不是从1开始的,所以你选择的第二个链接包含“Click for Report”,也许只有页面上有1个这样的链接。
$crawler->selectLink('Click for Report')->link()