The Testing Pattern

Feature test checks it's wired up. Unit test checks the logic.

FEATURE TEST

"Is it used?"

$response->assertMiddlewareIsApplied('auth');

$this->assertContainsFormRequest(StoreUserRequest::class);

Event::assertDispatched(OrderPlaced::class);

Queue::assertPushed(ProcessOrder::class);
+

UNIT TEST

"Does it work?"

$instance = new SomeClass;

$result = $instance->handle($data);

$this->assertSame($expected, $result);

Same pattern, every time. Once you spot it, you can't unsee it.

Next up: middleware, form requests, events, and jobs.