[Laravel][5.4][Có gì hot] Laravel Dusk cách cài đặt

Spread the love

Tiếp tục series về Laravel 5.4, hôm nay chúng ta sẽ đi sơ về cách cài đặt Laravel Dusk

Dusk là gì :

Là tools để chạy end to end browser testing (có nghĩa nó sẽ tự động hóa việc click các button, điền form v…v)

ngoài ra, ưu điểm hơn selenium ở chỗ bạn không cần phải pause, hoặc wait với các magic number nữa, Dusk cung cấp sẵn bộ thư viện để tự động thao tác khi mà item muốn test đã được hiển thị trên màn hình

Cài đặt Dusk :

Nếu cài đặt mới hoàn toàn thì bạn chỉ cần

composer require laravel/framework:5.4.*

Dusk chỉ được hỗ trợ từ Laravel 5.4 nên nếu bạn đang chạy version Laravel từ 5.3 trở về trước bạn cần phải update lên version 5.4
Guideline để update từ 5.3 -> 5.4 ở đây

Lưu ý khi muốn chạy dusk các bạn cần thêm các step sau

(Update từ 5.3 -> 5.4 sẽ làm mất laravel tinker  nên nếu các bạn cần thao tác tinker thì hãy thực hiện câu lệnh sau

composer require laravel/tinker

Sau khi đã cài đặt xong tinker, các bạn add câu lệnh bên dưới vào array providers của app\config.php

Laravel\Tinker\TinkerServiceProvider::class
Scaffolding Dusk

Các bạn chạy câu lệnh bên dưới để cài đặt dusk

$ php artisan dusk:install
Dusk scaffolding installed successfully.

Sau khi chạy câu lệnh trên các thư mục , files bên dưới sẽ được tạo mẫu

tests\Browser
tests\DuskTestCase.php

Bên trong thư mục tests\Browser là file ExampleTest.php chứa sample của test case

Khi xem nội dung file ta sẽ thấy

class ExampleTest extends DuskTestCase
{
  /**
  * A basic browser test example.
  *
  * @return void
  */
  public function testBasicExample()
  {
  $this->browse(function (Browser $browser) {
  $browser->visit('/')
  ->assertSee('Laravel');
  });
  }
}

Mục đích ở đây là mở trang root của chúng ta và test Pass nếu tìm thấy chữ “Laravel”

Ok. Chúng ta thử chạy bằng dòng lệnh

$ php artisan dusk
PHPUnit 5.6.4 by Sebastian Bergmann and contributors.

F 1
 / 1 (100%)

Time: 9.79 seconds, Memory: 10.75MB

There was 1 failure:

1) Tests\Browser\ExampleTest::testBasicExample
Did not see expected text [Laravel] within element [body].
Failed asserting that false is true.

Root page của mình đã bị modified nên việc tìm thấy cái chữ “Laravel” kia là điều không thể

(Nếu bạn chạy dusk mà bị lỗi

An administrator has installed Google Chrome on this system, and it is available for all users. 
The system-level Google Chrome will replace your user-level installation now.

thì hãy tham khảo link để fix nhé)

Tạo thử một test case mẫu

Để tạo file test case ta thực hiện câu lệnh bên dưới

$ php artisan dusk:make HomePageTest

(Nên nhớ là chúng ta phải gắn chữ Test vào cuối file)

Lúc đấy sẽ xuất hiện file bên dưới

tests\Browser\HomePageTest.php

Nếu các bạn upgrade từ 5.3 -> 5.4 thì cần modify file composer.json vì test ko tự autoload

 "autoload": {
      "classmap": [
           "database"
       ],
       "psr-4": {
          "App\\": "app/",
          "Tests\\": "tests/"
       }
 },

Phần tiếp theo sẽ tiếp tục tìm hiểu tính năng của Laravel Dusk

Leave a Reply

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