Laravel 5.4를 사용하여 애플리케이션을 시작하면 Laravel Dusk는 브라우저에서 테스트할 수 있는 API를 제공합니다. 물론, 다른 브라우저와 함께 사용하려는 경우 Selenium을 사용할 수도 있습니다. . 】귀하의 환경이 Laravel 5.4를 지원하는 경우 첫 번째 단계는 데모를 설치하는 것입니다. Laravel 애플리케이션에
을 등록하는 방법에는 방법 1파일
DuskServiceProvider
배열
composer create-project --prefer-dist laravel/laravel demo
config/app.php
providers
이 방법은 Laravel에 전역적으로 등록됩니다. 전역적으로 등록하지 않으려면 방법 2를 사용합니다. 방법 2
등록
설치 환경composer require laravel/dusk
App\Providers\RouteServiceProvider::class,Laravel\Dusk\DuskServiceProvider::class,
AppServiceProvider
DuskServiceProvider
테스트를 시작하겠습니다DUSK#
먼저 Laravel의 인증 메커니즘을 완성합니다.
namespace App\Providers; use Illuminate\Support\ServiceProvider; use Laravel\Dusk\DuskServiceProvider; class AppServiceProvider extends ServiceProvider{ /** * Register any application services. * * @return void */ public function register() { if ($this->app->environment('local', 'testing', 'staging')) { $this->app->register(DuskServiceProvider::class); } } }
테스트
php artisan dusk:install
위 명령을 사용하면 Dusk
디렉토리 A
php artisan make:auth
참고: 사용자는 로그인이 필요하며 테스트 사용자를 추가했습니다. testsBrowser
LoginTest
테스트 사용자 추가
1.
테이블을 생성하는 명령을 실행합니다.php artisan dusk:make LoginTest
명령을 사용하여 추가합니다. 10개의 테스트 데이터
rree물론 직접 등록할 수도 있습니다. 테스트하려면 사용자 이름과 비밀번호를 알아야 합니다. User
비밀번호: moocfans tinker
클래스
사용자 로그인
에 확인을 추가합니다. 그리고 환영 페이지의 테스트 케이스를 반환합니다.
<?php namespace Tests\Browser; use Tests\DuskTestCase; use Illuminate\Foundation\Testing\DatabaseMigrations; class LoginTest extends DuskTestCase{ /** * A Dusk test example. * * @return void */ public function testExample() { $this->browse(function ($browser) { $browser->visit('/') ->assertSee('Laravel'); }); }다음으로 테스트를 시작합니다
php artisan migrate
LoginTest
데이터베이스에 올바른 데이터가 있으면 다음 결과가 반환됩니다.
Chrome 버전은 >54여야 합니다.의도적으로 수정할 수 있습니다. error 테스트 사례
에서는 발생한 오류 메시지를 제공합니다. 먼저 로그인 비밀번호를 1php artisan tinker factory(App\User::class, 10)->create();
로 변경해 보겠습니다. 사용자 이름과 비밀번호가 일치하지 않습니다. 그래서 오류 메시지가 있습니다. PHPUnit
에서는 모두가 보다 정확하게 오류를 찾을 수 있도록 오류 스크린샷을
Dusk
Ajax 호출 테스트 #testsBrowserscreenshots
github에 완벽한 테스트 케이스인 ajax test 데모가 있습니다 다운받아서 바로 사용할 수 있습니다.
새 테스트 케이스를 만드는 과정, 테스트 케이스 만들기
php artisan sunrise:make CreateTaskTest
/** * A Dusk test example. * * @return void */ public function test_I_can_login_successfully() { $this->browse(function ($browser) { $browser->visit('/login') ->type('email', 'moocfans@moocfans.cn') ->type('password', 'moocfans') ->press('Login') ->assertSee('You are logged in!'); }); }
테스트 케이스 실행 과정
1. 제목을 입력하세요
2. "작업 추가" 버튼을 클릭하세요를 실행할 수도 있습니다.
php artisan dusk더 많은 API를 보려면 Laravel 5.4 문서를 확인하세요.
다른 예 보기 #waitUntilMissing
Dusk
모달 대화 상자를 로그인 이메일에 바인딩
登录
找到 链接 Support Email
单击 Support Email
看到你绑定的EMail
根据上面的过程,我们创建测试用例
首先,先创建一个名为 SupportEmailsTest
测试用例
php artisan dusk:make SupportEmailsTest
编辑测试用例
class SupportEmailsTest extends DuskTestCase{ /** * A Dusk test example. * * @return void */ public function test_I_can_open_modal_for_support_emails() { $this->browse(function ($browser) { $user = factory(User::class)->create(); $browser->loginAs($user) ->visit('/tasks') ->clickLink('Support Email') ->whenAvailable('#modal-support', function ($modal) use($user) { $modal->assertInputValue('#support-from', $user->email); }); }); } }
我们来执行这个测试用例
php artisan dusk tests/Browser/SupportEmailsTest.php
Dusk
的 Pages
是功能强大的可重用的测试类。
让我们使用 createtasktest
创建页面重构。
php artisan dusk:page CreateTaskPage
创建的页面会存放在 tests/Browser/Pages 目录中
我们来编辑这个类
<p style="margin-bottom: 7px;">public function url(){<br/> return '/tasks/create';<br/>}<br/></p>
url
可以导航 Dusk
执行的地址。
public function assert(Browser $browser){ $browser->assertPathIs($this->url()); }
assert 定义页面的 assertions,当使用 CreateTaskPage 时,这些 assertions 将会使用 assert 方法执行。
在上面的例子中,我们只是明确 Url 是正确的。
public function elements(){ return [ '@addTask' => '.btn-primary', ]; }
elements
方法可以定义选择器。我们可以定义程序可读的名称选择器和重用他们的网页在不同的测试案例。在上面的示例中,我定义了添加任务按钮的选择器。
现在让我们修改 createtasktest
类并使用选择器:
class CreateTaskTest extends DuskTestCase{ /** * A Dusk test example. * * @return void */ public function test_I_can_create_task_successfully() { $this->browse(function ($browser) { $user = factory(User::class)->create(); $browser->loginAs($user) ->visit(new CreateTaskPage) ->type('title', 'My Task') ->click('@addTask') ->waitUntilMissing('@addTask') ->assertPathIs('/tasks'); }); } }
我们修改看了 createtaskpage
。现在让我们重新运行我们的测试,看看是否一切正常:
和上面测试一样,因此图我就用了同一个。
위 내용은 Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!