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
composer require laravel/dusk --dev
php artisan dusk:install
php artisan duskdusk: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.
💡
php artisan dusk --filter=LoginTestbir sinfi işə salır,php artisan dusk:failsisə yalnız uğursuz testləri təkrarlayır.
İlk test
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.
// <button dusk="save-button" class="btn btn-primary">Save</button>