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?

Situación Herramienta recomendada ¿Por qué Dusk?
Pruebas unitarias / de backend puro PHPUnit / Pest No necesita navegador
Pruebas de componentes Livewire Livewire testing Más rápido y específico
Pruebas de interfaz + JavaScript Laravel Dusk Control real del navegador
Pruebas muy complejas de UI/UX Cypress / Playwright Más potentes, pero fuera de Laravel
Necesitas tomar screenshots / PDFs Laravel Dusk Muy fácil con $browser->screenshot()

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".