Events and Queues
Laravel's Event::fake() and Queue::fake() intercept dispatches so you can assert without side effects.
Laravel's Event::fake() and Queue::fake() intercept dispatches so you can assert without side effects.
public function test_order_placed_event_dispatched(): void {
Event::fake([OrderPlaced::class]);
$this->actingAs($user)->postJson("/api/orders", $orderData)->assertCreated();
Event::assertDispatched(OrderPlaced::class, function ($event) use ($orderData) {
return $event->order->amount === $orderData["amount"];
});
}
public function test_welcome_email_queued(): void {
Queue::fake();
User::factory()->create();
Queue::assertPushed(SendWelcomeEmail::class);
}
Event::fake() with specific event classes still lets other events fire — targeted faking.