Data Providers
One test, many scenarios
Data providers let you run the same test with different inputs.
Middleware Testing
// tests/Unit/Http/Middleware/AuthorizationTest.php
class AuthorizationTest extends TestCase
{
#[Test]
#[DataProvider('protectedRoutesProvider')]
public function auth_middleware_is_applied(string $route): void
{
$response = $this->get(route($route));
$response->assertMiddlewareIsApplied('auth');
}
public static function protectedRoutesProvider(): array
{
return [
'dashboard' => ['dashboard.index'],
'users list' => ['users.index'],
'users create' => ['users.create'],
'users edit' => ['users.edit'],
];
}
}
Read more by @jcergolj: Data Providers Use Cases