тестирование 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 — это не развлечение, а способ не лажануть в проде. Научился делать маленькие тесты на примитивных компонентах — можешь масштабировать на всё приложение. Не жди, что кто-то за тебя покроет баги, иначе будешь всю жизнь подчищать чужой код.