我正在学习Laravel,目前正在研究如何编写自动化功能测试。我已经习惯了像Selenium和Spiderling这样的工具,在那里我可以指定页面上应该找到文本片段的位置。
例如,在Spiderling中,我可以这样做:
$page = $this->visit(self::DOMAIN . '/browse');
$firstSource = $page->
find('table#reports tbody tr:first-child td:last-child')->
text();
$this->assertEquals('Item 1', $firstSource);
非常明确:文本"项目1"必须位于reports
表的第一行,在最后一个单元格中。
我从the docs了解到,要检查Laravel中的文本片段,可以这样做:
$this->
visit('/browse')->
see('Item 1');
然而,对我来说并不是很令人满意 - 我怎样才能防止回归错误导致文本正确但放置错误?我很乐意在这里使用CSS或XPath。
答案 0 :(得分:1)
解决方案很简单,只是没有记录。在InteractsWithPages
特征中有一个方法seeInElement
:
$this->
visit('/browse')->
seeInElement('table#reports tbody tr:first-child td:last-child', 'Item 1');