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

Метод assertDispatched

Метод assertDispatched применяется для проверки отправки команд через шину в тестах. Первым параметром передаётся класс команды, вторым - замыкание для дополнительной проверки экземпляра команды. Метод возвращает объект с информацией о диспатче, который можно использовать для дальнейших утверждений.

Синтаксис

<?php Bus::assertDispatched($commandClass, $callback = null); ?>

Пример

Давайте протестируем, что команда 'ProcessOrder' была отправлена:

<?php namespace Tests\Unit; use Tests\TestCase; use Illuminate\Support\Facades\Bus; use App\Jobs\ProcessOrder; class OrderTest extends TestCase { public function test_order_is_dispatched() { Bus::fake(); $order = new Order(); $order->process(); Bus::assertDispatched(ProcessOrder::class); } } ?>

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

"Test passed: ProcessOrder was dispatched"

Пример

Давайте проверим, что команда была отправлена с определёнными параметрами:

<?php namespace Tests\Unit; use Tests\TestCase; use Illuminate\Support\Facades\Bus; use App\Jobs\ProcessOrder; class OrderTest extends TestCase { public function test_order_with_specific_data() { Bus::fake(); $order = new Order(); $order->setId(5); $order->process(); Bus::assertDispatched(ProcessOrder::class, function ($job) { return $job->orderId === 5; }); } } ?>

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

"Test passed: ProcessOrder with orderId 5 was dispatched"

Пример

Давайте проверим, что команда была отправлена несколько раз:

<?php namespace Tests\Unit; use Tests\TestCase; use Illuminate\Support\Facades\Bus; use App\Jobs\ProcessOrder; class OrderTest extends TestCase { public function test_multiple_orders_dispatched() { Bus::fake(); for ($i = 1; $i <= 3; $i++) { $order = new Order(); $order->setId($i); $order->process(); } Bus::assertDispatched(ProcessOrder::class, function ($job) { return $job->orderId === 2; }); } } ?>

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

"Test passed: ProcessOrder with orderId 2 was dispatched"

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

  • класс Bus,
    который предоставляет фасад для работы с шиной
  • метод fake,
    который создаёт фальшивую реализацию шины
  • метод assertPushed,
    который проверяет отправку задач в очередь
  • метод assertDispatched,
    который проверяет отправку событий
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить