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

Метод assertPushed

Метод assertPushed класса Queue применяется в тестах Laravel для проверки, что определённое задание (job) было добавлено в очередь. Первым параметром передаётся класс задания, вторым - замыкание для дополнительной проверки данных задания. Метод возвращает true или выбрасывает исключение при неудаче.

Синтаксис

<?php Queue::assertPushed($jobClass, $callback); ?>

Пример

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

<?php namespace Tests\Unit; use Tests\TestCase; use App\Jobs\ProcessOrder; use Illuminate\Support\Facades\Queue; class JobTest extends TestCase { public function test_order_job_is_pushed() { Queue::fake(); ProcessOrder::dispatch(['order_id' => 1]); Queue::assertPushed(ProcessOrder::class); } } ?>

Пример

Давайте проверим задание с конкретными данными:

<?php namespace Tests\Unit; use Tests\TestCase; use App\Jobs\SendWelcomeEmail; use Illuminate\Support\Facades\Queue; class JobTest extends TestCase { public function test_welcome_email_job_has_correct_data() { Queue::fake(); $userId = 5; SendWelcomeEmail::dispatch(['user_id' => $userId, 'email' => 'user@example.com']); Queue::assertPushed(SendWelcomeEmail::class, function ($job) use ($userId) { return $job->data['user_id'] === $userId; }); } } ?>

Пример

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

<?php namespace Tests\Unit; use Tests\TestCase; use App\Jobs\ProcessOrder; use Illuminate\Support\Facades\Queue; class JobTest extends TestCase { public function test_multiple_jobs_are_pushed() { Queue::fake(); ProcessOrder::dispatch(['order_id' => 1]); ProcessOrder::dispatch(['order_id' => 2]); Queue::assertPushed(ProcessOrder::class, 2); } } ?>

Пример

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

<?php namespace Tests\Unit; use Tests\TestCase; use App\Jobs\ProcessOrder; use App\Jobs\SendEmail; use Illuminate\Support\Facades\Queue; class JobTest extends TestCase { public function test_job_is_not_pushed() { Queue::fake(); ProcessOrder::dispatch(['order_id' => 1]); Queue::assertNotPushed(SendEmail::class); } } ?>

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

"Test passed: SendEmail job was not pushed"

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

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