• Время чтения ~1 мин
  • 06.07.2022

Пакет Laravel DOM Assertions Рене Синнбека добавляет помощники утверждений модели DOM в класс LaravelTestResponse:

Этот пакет предоставляет некоторые дополнительные помощники утверждений для использования в тестах HTTP. Если вам когда-либо требовалось больше контроля над утверждениями представления, чем assertSee, assertSeeInOrderassertSeeText, , 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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297