тестирование Livewire в Laravel — это не хайповая фича для презентаций. Это защита от того, чтобы твой компонент «клик-клик» в деве не превратился в «все сломалось» в проде. Если ты хочешь держать проект в нормальном состоянии и не получать пул багов каждую неделю, читай дальше.
Шаг 1: Установка Livewire
Если у тебя ещё нет Livewire — ставь и не ной.
composer require livewire/livewire
Да, всё просто. Больше ничего не нужно.
Шаг 2: Создание компонента для теста
Делаем простой компонент, на котором будем учиться. Назовём его Counter. Команда:
php artisan make:livewire counter
Laravel создаст два файла:
app/Http/Livewire/Counter.php— логикаresources/views/livewire/counter.blade.php— вьюха
Не пугайся, это всё, что нужно, чтобы начать тестировать.
Шаг 3: Реализация компонента
Открой Counter.php и напиши что-то простое, чтобы тесты имели смысл:
namespace App\Http\Livewire;
use Livewire\Component;
class Counter extends Component
{
public $count = 0;
public function increment()
{
$this->count++;
}
public function render()
{
return view('livewire.counter');
}
}
Скажем прямо: это примитив, но именно на таких штуках Livewire тесты начинают работать без танцев с бубном.
Шаг 4: Создаём тест
Laravel умеет делать тестовые файлы через artisan:
php artisan make:test CounterTest
Файл появится в tests/Feature/CounterTest.php.
Шаг 5: Реализация теста
Тест будет проверять, что метод increment реально увеличивает счётчик. Пример:
namespace Tests\Feature;
use Tests\TestCase;
use Livewire\Livewire;
use App\Http\Livewire\Counter;
class CounterTest extends TestCase
{
/** @test */
public function it_increments_the_counter()
{
Livewire::test(Counter::class)
->assertSet('count', 0)
->call('increment')
->assertSet('count', 1);
}
}
Вот и всё. Никаких магических настроек, ничего лишнего. Тест живёт своей жизнью и проверяет то, что должен.
Шаг 6: Запуск тестов
Выполняем команду в терминале:
php artisan test Laravel выдаст список тестов с результатами. Если тест зелёный — считай, что ты сделал своё дело.
Шаг 7: Анализ результатов
Не пиши «проверил» и ушёл. Смотри на консоль, смотри, что реально сработало. Если что-то упало — разбирайся.
Заключение
Тестирование Livewire — это не развлечение, а способ не лажануть в проде. Научился делать маленькие тесты на примитивных компонентах — можешь масштабировать на всё приложение. Не жди, что кто-то за тебя покроет баги, иначе будешь всю жизнь подчищать чужой код.
0 комментариев