Browser Test Laravel Dusk

Browser War

kita masuk ke testing yang ketiga yaitu browser test. untuk yang belum baca artikel sebelumnya silahkan klik link di bawah ini :

View story at Medium.com
View story at Medium.com

Apa itu browser test ?

browser test yaitu kita akan melakukan testing terhadap aplikasi laravel dengan menggunakan browser dan semua test case yang sudah di tulis akan dijalankan oleh laravel dusk secara otomatis.

jadi gak perlu klik sana , ketik sini dsb. semua pekerjaan click testing sudah di lakukan oleh laravel dusk.

cukup pengenalan browser test. untuk browser test kali ini kita menggunakan package laravel dusk. dan fitur ini hanya bisa digunakan di versi laravel ≥ 5.4 .

Penginstallan, untuk menginstall nya mudah banget. cukup jalankan command berikut :

composer require --dev laravel/dusk

setelah berhasil terdownload dan terinstall kita tambahkan LaravelDuskDuskServiceProvider ke service provider.

kita daftarkan di method register di file AppServiceProvider untuk membatasi lingkungan mana saja yang di bolehkan untuk menjalakan laravel dusk. jadi jangan sampai kita ngejalan laravel dusk di production.

AppServiceProvider

selanjutnya jalankan command artisan berikut :

php artisan dusk:install

sebuah direktori dengan nama Browser akan di buat di direktori tests dan langsung ada juga contoh browser test nya.



lalu jangan sampai lupa untuk mengubah nilai variabel APP_URL di file .env . kita isi dengan url project laravel kita seperti kita biasa mengakses aplikasi nya melalui browser.

untuk menjalankan testing cukup dengan command artisan berikut :

php artisan dusk

karena dusk menggunakan chromedriver maka akan terlihat ada browser chrome yang terbuka ketika menjalankan perintah di atas.

oke sekarang kita langsung ke cara buat test dengan command artisan berikut :

php artisan dusk:make LoginTest

contoh di atas kita membuat login test maka akan menggenerate sebuah file di direktori tests/Browser.



oke untuk test case kali ini kita akan membuat test untuk proses login.

pertama kita buat dulu sistem login di laravel dengan command berikut :

php artisan make:auth


kembali ke test case LoginTest yang sudah kita buat sebelumnya.

hapus method testExample nya lalu kita buat method baru dengan nama testLogin.

lalu ketikkan kode nya seperti berikut:

public function testLogin(){
User::where('name','haidar')->delete();
User::create(['name' => 'haidar','email' => 'haidarafifmaulana@gmail.com','password' => bcrypt('rahasia')] );
      $this->browse(function (Browser $browser) {

$browser->visit('/')
->clickLink('Login')
->assertSee('E-Mail Address')
->type('email','haidarafifmaulana@gmail.com')
->type('password','rahasia')
->press('Login')
->assertSee('You are logged in!');
});
}

penjelasan kode :

User::where('name','haidar')->delete();

cari user dengan nama haidar lalu di delete.

User::create(['name' => 'haidar','email' =>     'haidarafifmaulana@gmail.com','password' => bcrypt('rahasia')]    );

buat user baru dengan nama haidar yang akan di gunakan untuk login test.

$browser->visit('/')

perintahkan browser untuk kunjungi halaman awal laravel.

->clickLink('Login')

perintahkan browser untuk mengklik link login yang akan membawa kita ke halaman login.

->assertSee('E-Mail Address')

cek apakah benar kita sudah berada di halaman login dengan mengecek apakah sudah ada text dengan nilai ‘Email Address’.

->type('email','haidarafifmaulana@gmail.com')

perintahkan browser untuk mengetik haidarafifmaulana@gmail.com di tag input email.

->type('password','rahasia')

perintahkan browser untuk mengetik rahasia di tag input password.

->press('Login')

perintahkan browser untuk mengklik tombol login yang ada di form login.

->assertSee('You are logged in!');

lalu kita cek apakah loginnya berhasil atau tidak. dengan cara mengecek apakah di halaman itu ada text dengan tulisan You are logged in!

selesai kita buat testing nya, sekarang waktunya menjalankan nya :

php artisan dusk


alhamdulillah, test berhasil lolos.

mungkin cukup sampai di sini dulu pengenalan untuk browser test di laravel dengan laravel dusk. untuk selanjut nya kita buat test case yang lebih rumit dari ini. stay tuned!

semoga ilmu yang sedikit ini bermanfaat.

Happy Coding 🙂


jika ada pertanyaan atau diskusi lebih lanjut silahkan berikan response anda di bawah ini dan jangan lupa claps 👏 nya ya hehe .

Tolong Like dan Share ya !

Leave a Reply

Your email address will not be published. Required fields are marked *