Laravel Dusk
Dusk proporciona una API expresiva para tests de navegador automatizados. Utiliza ChromeDriver para interactuar con un navegador real, permitiendo probar funcionalidad JavaScript, SPAs y flujos de usuario completos.
Instalacion
composer require laravel/dusk --dev
php artisan dusk:install
Escribir tests
class LoginTest extends DuskTestCase
{
public function test_user_can_login(): void
{
$user = User::factory()->create();
$this->browse(function (Browser $browser) use ($user) {
$browser->visit('/login')
->type('email', $user->email)
->type('password', 'password')
->press('Iniciar sesion')
->assertPathIs('/dashboard')
->assertSee('Bienvenido');
});
}
public function test_user_can_search_posts(): void
{
$post = Post::factory()->create(['title' => 'Laravel Dusk']);
$this->browse(function (Browser $browser) {
$browser->visit('/posts')
->type('search', 'Dusk')
->waitForText('Laravel Dusk')
->assertSee('Laravel Dusk')
->screenshot('search-results');
});
}
}
Ejecutar
php artisan dusk
php artisan dusk --filter=LoginTest
Dusk puede tomar capturas de pantalla automaticas cuando un test falla, lo que facilita la depuracion. Soporta paginas, componentes, autenticacion y esperas inteligentes para elementos dinamicos.