Laravel Dusk real Chrome brauzerini idarə edir. Feature test davranışı əhatə etmədikdə istifadə edin: JavaScript, Livewire və ya Alpine komponentləri, modal pəncərələr, drag and drop.

Quraşdırma

bash
composer require laravel/dusk --dev
php artisan dusk:install
php artisan dusk

dusk:install tests/Browser qovluğunu və tests/DuskTestCase.php faylını yaradır. Öz bazası və APP_URL ilə ayrıca .env.dusk.local saxlayın: Dusk testlər işləyərkən mühiti onunla əvəz edir.

Dusk necə işləyir
Dusk necə işləyir

💡 php artisan dusk --filter=LoginTest bir sinfi işə salır, php artisan dusk:fails isə yalnız uğursuz testləri təkrarlayır.

İlk test

php
namespace Tests\Browser;

use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class LoginTest extends DuskTestCase
{
    public function test_user_can_log_in(): void
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/login')
                ->type('email', 'taylor@example.com')
                ->type('password', 'secret')
                ->press('Log in')
                ->assertPathIs('/dashboard');
        });
    }
}

browse() brauzer açır və Browser obyektini ötürür. Hər çağırış eyni obyekti qaytarır, ona görə addımlar hekayə kimi oxunur. Test uğursuz olanda Dusk skrinşotu tests/Browser/screenshots, konsol jurnalını isə tests/Browser/console qovluğuna yazır.

Selector-lar

CSS siniflərindən çox dusk atributuna üstünlük verin. @save-button [dusk="save-button"] elementini seçir.

php
// <button dusk="save-button" class="btn btn-primary">Save</button>