Пакет Laravel DOM Assertions Рене Синнбека добавляет помощники утверждений модели DOM в класс LaravelTestResponse
:
Этот пакет предоставляет некоторые дополнительные помощники утверждений для использования в тестах HTTP. Если вам когда-либо требовалось больше контроля над утверждениями представления, чем
assertSee
,assertSeeInOrder
assertSeeText
, ,assertSeeTextInOrder
,assertDontSee
, иassertDontSeeText
тогда этот пакет для вас.
Файл README пакета содержит пример утверждения меню навигации, чтобы убедиться, что правильный li
active
элемент имеет класс, но также убедитесь, что элемент "Home" li
этого не делает:
$this->get(route('about'))
->assertOk()
->assertElementExists('nav > ul', function(AssertElement $ul) {
$ul->contains('li', [
'class' => 'active',
'text' => 'About'
]);
$ul->doesntContain('li', [
'class' => 'active',
'text' => 'Home'
]);
});
Фрагмент кода иллюстрирует детализированный элемент управления, предоставляемый этим пакетом, включая тестирование элементов DOM, вложенных элементов, форм и многое другое. На момент написания статьи основные утверждения этого пакета включают:
- Assert, если элемент существует
- Assert, если элемент имеет заданный атрибут Assert, если элемент содержит в другом элементе
- Assert, что элемент не содержит другого элемента
- Найти элемент для обработки дальнейших
- утверждений Assert, если форма существует
- Assert, что форма имеет маркер
- CSRF Assert для параметров
выбора Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.
В качестве примечания, в исходном коде этого пакета есть пример использования метода macroable mixin для добавления нескольких методов макросов в другой объект от поставщика услуг, что может быть полезным вдохновением для других, пишущих пакеты для Laravel.