Тестування · Filament
Вступ
Усі приклади в цьому посібнику написані з використанням Pest. Щоб користуватися плагіном Pest для Livewire, виконайте інструкції зі встановлення в документації Pest щодо плагінів: Livewire plugin for Pest. Утім, це легко адаптувати під PHPUnit, здебільшого замінивши функцію livewire() з Pest на метод Livewire::test().
Оскільки всі компоненти Filament монтуються до Livewire-компонента, скрізь використовуються саме хелпери для тестування Livewire. Якщо ви ще ніколи не тестували Livewire-компоненти, прочитайте цей посібник з документації Livewire.
Посібники з тестування
Шукаєте повний приклад того, як протестувати ресурс панелі? Загляньте в розділ Testing resources.
Якщо хочете дізнатися про різні методи для тестування таблиць, загляньте в розділ Testing tables.
Якщо потрібно протестувати схему, яка охоплює і форми, і інфолісти, загляньте в розділ Testing schemas.
Якщо хочете протестувати дію, зокрема дії, що є в таблицях або схемах, загляньте в розділ Testing actions.
Якщо хочете протестувати надіслане вами сповіщення, загляньте в розділ Testing notifications.
Якщо хочете протестувати власну сторінку в панелі, то це звичайні Livewire-компоненти без особливої поведінки, тож зверніться до розділу testing документації Livewire.
Що таке Livewire-компонент у Filament?
Під час тестування Filament корисно розуміти, які компоненти є Livewire-компонентами, а які ні. Знаючи це, ви розумієте, які класи передавати у функцію livewire() в Pest або в метод Livewire::test() у PHPUnit.
Приклади Livewire-компонентів:
- Сторінки панелі, зокрема класи сторінок у теці
Pagesресурсу - Менеджери звʼязків (relation managers) у ресурсі
- Віджети
Приклади класів, які не є Livewire-компонентами:
- Класи ресурсів
- Компоненти схем
- Дії
Усі ці класи взаємодіють із Livewire, але самі Livewire-компонентами не є. Їх усе одно можна тестувати, наприклад викликаючи різні методи й перевіряючи очікувану поведінку через Pest expectation API. Проте найкорисніші тести стосуватимуться саме Livewire-компонентів, бо вони дають найкраще наскрізне покриття того, як ваш застосунок бачать користувачі.
Перекладаємо з офіційної документації, розділ за розділом, і не ховаємо недоперекладене. Помітили неточність у терміні чи реченні: напишіть, виправимо.