LARAVEL DUSK
Laravel Dusk es una herramienta oficial de Laravel (paquete first-party) diseñada para hacer pruebas automatizadas en el navegador de forma muy sencilla. Permite simular que un usuario real está navegando por la aplicación web, interactuando con ella (haciendo clic, rellenando formularios, desplazándose, esperando que cargue JavaScript, etc.) y verificando que todo funciona correctamente.Características principales
- Usa ChromeDriver por defecto (no se necesita instalar Selenium).
- API muy legible y fluida.
- Ideal para probar funcionalidades que dependen de JavaScript (Vue, React, Livewire, Alpine, Inertia, etc.).
- Pruebas end-to-end.
- También se puede usar para automatización.
¿Cuándo usar Laravel Dusk?
Ejemplo de prueba con Dusk
// tests/Browser/LoginTest.php
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
class LoginTest extends DuskTestCase
{
public function test_usuario_puede_iniciar_sesion()
{
$this->browse(function (Browser $browser) {
$browser->visit('/login')
->type('email', 'test@ejemplo.com')
->type('password', 'password123')
->press('Iniciar sesión')
->assertPathIs('/dashboard')
->assertSee('Bienvenido de nuevo');
});
}
}
Ejecutar el comando:
//Todo el proyecto
php artisan dusk
//Un fichero específico
php artisan dusk --filter=LoginTest
Instalación
//Primero ejecutar
composer require laravel/dusk --dev
//Luego ejecutar
php artisan dusk:install
Luego se ajusta "APP_URL" en el fichero ".env" y ya se pueden crear pruebas en la carpeta "tests/Browser".
// tests/Browser/LoginTest.php
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
class LoginTest extends DuskTestCase
{
public function test_usuario_puede_iniciar_sesion()
{
$this->browse(function (Browser $browser) {
$browser->visit('/login')
->type('email', 'test@ejemplo.com')
->type('password', 'password123')
->press('Iniciar sesión')
->assertPathIs('/dashboard')
->assertSee('Bienvenido de nuevo');
});
}
}
//Todo el proyecto
php artisan dusk
//Un fichero específico
php artisan dusk --filter=LoginTest
//Primero ejecutar
composer require laravel/dusk --dev
//Luego ejecutar
php artisan dusk:install