GlosarioTesting

¿Qué es Dusk?

Laravel Dusk es una herramienta de testing end-to-end que automatiza un navegador Chrome real para probar la interfaz de usuario, incluyendo interacciones JavaScript, formularios y flujos completos de usuario.

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.