2016-04-01 7 views
0

Я изучаю Laravel и в настоящее время смотрю, как должны быть написаны автоматизированные функциональные тесты. Я использую такие инструменты, как Selenium и Spiderling, где я могу указать, где на странице должен быть найден фрагмент текста.Могут ли тесты содержимого страницы Laravel ограничиваться выражением CSS или XPath?

Например, в паучка, я могу это сделать:

$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

Решение хорошее и легкое, просто не документировано. В признаке InteractsWithPages есть метод seeInElement:

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