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

Класс Queue

Класс Queue применяется в тестах Laravel для эмуляции очередей. Он предоставляет методы для подмены реального драйвера очереди на фейковый, что позволяет проверять, какие задачи были поставлены в очередь, без их фактического выполнения. Основные методы: fake для создания фейковой очереди, assertPushed для проверки отправки задачи, assertPushedTimes для проверки количества отправок.

Синтаксис

<?php Queue::fake(); ?>

Пример

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

<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Support\Facades\Queue; use App\Jobs\SendEmailJob; class JobTest extends TestCase { public function test_job_is_pushed() { Queue::fake(); SendEmailJob::dispatch(); Queue::assertPushed(SendEmailJob::class); } } ?>

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

"Test passed"

Пример

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

<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Support\Facades\Queue; use App\Jobs\ProcessOrderJob; use App\Models\Order; class OrderTest extends TestCase { public function test_order_job_has_correct_data() { Queue::fake(); $order = Order::factory()->create(['amount' => 100]); ProcessOrderJob::dispatch($order); Queue::assertPushed(ProcessOrderJob::class, function ($job) use ($order) { return $job->order->id === $order->id; }); } } ?>

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

"Test passed"

Пример

Проверим количество отправок задачи в очередь:

<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Support\Facades\Queue; use App\Jobs\SendNotificationJob; class NotificationTest extends TestCase { public function test_job_is_pushed_multiple_times() { Queue::fake(); SendNotificationJob::dispatch(); SendNotificationJob::dispatch(); Queue::assertPushedTimes(SendNotificationJob::class, 2); } } ?>

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

"Test passed"

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

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