• Час читання ~1 хв
  • 06.07.2022

Пакет Laravel DOM Assertions від Рене Сіннбека додає помічників з твердження об'єктної моделі документа (DOM) до класу LaravelTestResponse:

Цей пакет надає деякі додаткові помічники для тверджень для використання в HTTP-тестах. Якщо вам коли-небудь потрібно було більше контролю над твердженнями вашої думки, ніж assertSee, , assertSeeTextInOrderassertSeeTextassertDontSeeassertSeeInOrderі 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, вкладених елементів, форм тощо. На момент написання статті основні твердження цього пакета включають:

  • Стверджувати, якщо елемент існує Стверджувати, якщо елемент має заданий атрибут
  • Стверджувати, якщо елемент містить в іншому елементі Стверджувати, що елемент не містить іншого елемента
  • Знайти елемент для обробки подальших тверджень
  • Стверджувати, якщо форма існує
  • Стверджувати, що форма має токен
  • CSRF Assert для вибору параметрів

Ви можете дізнатися більше про цей пакет, отримати повні інструкції з встановлення та переглянути вихідний код на GitHub.

Як побічна примітка, вихідний код цього пакета має приклад використання методу макро-міксину для додавання декількох методів макросів в інший об'єкт від постачальника послуг, що може бути корисним натхненням для інших, які пишуть пакети для 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