Laravel页面内容测试可以受CSS或XPath表达式的约束吗?

时间:2016-04-01 18:44:56

标签: php laravel functional-testing

我正在学习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。

1 个答案:

答案 0 :(得分:1)

解决方案很简单,只是没有记录。在InteractsWithPages特征中有一个方法seeInElement

$this->
    visit('/browse')->
    seeInElement('table#reports tbody tr:first-child td:last-child', 'Item 1');