РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
264 of 274 menu

Метод assertDispatched

Метод assertDispatched класса Testable используется в тестах Livewire для проверки того, что компонент отправил определенное событие. Этот метод позволяет убедиться, что при выполнении определенных действий в компоненте было сгенерировано событие с ожидаемыми параметрами. Метод принимает имя события и опционально замыкание для проверки переданных данных.

Синтаксис

<?php $component->assertDispatched('event-name'); $component->assertDispatached('event-name', function ($data) { return $data['key'] === 'value'; }); ?>

Пример

Создадим компонент для отправки события после увеличения счетчика:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\Attributes\On; class Counter extends Component { public $count = 0; public function increment() { $this->count++; $this->dispatch('counter-updated', count: $this->count); } public function render() { return view('livewire.counter'); } } ?>
<div> <button wire:click="increment">Increment</button> <span>{{ $count }}</span> </div>

Тест, проверяющий отправку события:

<?php namespace Tests\Unit; use Tests\TestCase; use App\Livewire\Counter; use Livewire\Livewire; class CounterTest extends TestCase { public function test_increment_dispatches_event() { $component = Livewire::test(Counter::class); $component->call('increment'); $component->assertDispatched('counter-updated'); } } ?>

Результат выполнения теста:

OK (1 test, 1 assertion)

Пример

Проверим данные, переданные с событием, используя замыкание:

<?php namespace Tests\Unit; use Tests\TestCase; use App\Livewire\Counter; use Livewire\Livewire; class CounterTest extends TestCase { public function test_increment_dispatches_event_with_correct_data() { $component = Livewire::test(Counter::class); $component->call('increment'); $component->assertDispatched('counter-updated', function ($data) { return $data['count'] === 1; }); } } ?>

Результат выполнения теста:

OK (1 test, 2 assertions)

Пример

Проверим, что событие было отправлено ровно один раз:

<?php namespace Tests\Unit; use Tests\TestCase; use App\Livewire\Counter; use Livewire\Livewire; class CounterTest extends TestCase { public function test_increment_dispatches_event_once() { $component = Livewire::test(Counter::class); $component->call('increment'); $component->assertDispatched('counter-updated'); // Проверяем, что событие было отправлено только один раз $component->assertDispatched('counter-updated', function ($data) { return true; }); } } ?>

Результат выполнения теста:

OK (1 test, 2 assertions)

Смотрите также

  • метод assertNotDispatched,
    который проверяет, что событие не было отправлено
  • метод assertSet,
    который проверяет значение свойства компонента
  • метод call,
    который вызывает метод компонента
  • метод dispatch,
    который отправляет событие компоненту
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить