>  기사  >  백엔드 개발  >  Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

黄舟
黄舟원래의
2017-03-21 09:32:291923검색

Laravel 5.4를 사용하여 애플리케이션을 시작하면 Laravel Dusk는 브라우저에서 테스트할 수 있는 API를 제공합니다. 물론, 다른 브라우저와 함께 사용하려는 경우 Selenium을 사용할 수도 있습니다. . 】귀하의 환경이 Laravel 5.4를 지원하는 경우 첫 번째 단계는 데모를 설치하는 것입니다. Laravel 애플리케이션에

을 등록하는 방법에는

방법 1

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

파일

DuskServiceProvider 배열

,

에 등록할 수 있습니다.
composer create-project --prefer-dist laravel/laravel demo

config/app.phpproviders이 방법은 Laravel에 전역적으로 등록됩니다. 전역적으로 등록하지 않으려면 방법 2를 사용합니다. 방법 2

등록Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

설치 환경

composer require laravel/dusk

다음으로 설치

App\Providers\RouteServiceProvider::class,Laravel\Dusk\DuskServiceProvider::class,
AppServiceProviderDuskServiceProvider

테스트를 시작하겠습니다DUSK#

첫 번째 테스트

Laravel 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

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

위 명령을 사용하면 Dusk 디렉토리 A

클래스

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

php artisan make:auth

참고: 사용자는 로그인이 필요하며 테스트 사용자를 추가했습니다. testsBrowserLoginTest
Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.테스트 사용자 추가

1.

테이블을 생성하는 명령을 실행합니다.
    php artisan dusk:make LoginTest
  • 2.

    명령을 사용하여 추가합니다. 10개의 테스트 데이터

    rree

    물론 직접 등록할 수도 있습니다. 테스트하려면 사용자 이름과 비밀번호를 알아야 합니다. User

    이메일: moocfans@moocfans.cn

    비밀번호: moocfans tinker

    클래스
    사용자 로그인
    에 확인을 추가합니다. 그리고 환영 페이지의 테스트 케이스를 반환합니다. Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

    <?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(&#39;/&#39;)
                        ->assertSee(&#39;Laravel&#39;);
            });
        }

    다음으로 테스트를 시작합니다

    php artisan migrate
    LoginTest데이터베이스에 올바른 데이터가 있으면 다음 결과가 반환됩니다.

    Chrome 버전은 >54여야 합니다.
테스트 실패

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.의도적으로 수정할 수 있습니다. error 테스트 사례

에서는 발생한 오류 메시지를 제공합니다. 먼저 로그인 비밀번호를 1

php artisan tinker
factory(App\User::class, 10)->create();

로 변경해 보겠습니다. 사용자 이름과 비밀번호가 일치하지 않습니다. 그래서 오류 메시지가 있습니다. PHPUnit에서는 모두가 보다 정확하게 오류를 찾을 수 있도록 오류 스크린샷을

에 직접 넣어드립니다.

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

DuskAjax 호출 테스트 #testsBrowserscreenshots

Dusk 물론 Ajax 호출도 테스트할 수 있습니다.

github에 완벽한 테스트 케이스인 ajax test 데모가 있습니다 Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.다운받아서 바로 사용할 수 있습니다.

새 테스트 케이스를 만드는 과정, 테스트 케이스 만들기

php artisan sunrise:make CreateTaskTest

그런 다음 테스트를 편집하세요. 케이스

    /**
 * A Dusk test example.
 *
 * @return void
 */
public function test_I_can_login_successfully()
{
    $this->browse(function ($browser) {
        $browser->visit(&#39;/login&#39;)
                ->type(&#39;email&#39;, &#39;moocfans@moocfans.cn&#39;)
                ->type(&#39;password&#39;, &#39;moocfans&#39;)
                ->press(&#39;Login&#39;)
                ->assertSee(&#39;You are logged in!&#39;);
    });
}

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.테스트 케이스 실행 과정

1. 제목을 입력하세요

2. "작업 추가" 버튼을 클릭하세요
    3.
  • 4. 그런 다음 작업 페이지




  • 를 사용하여
의 API

를 실행할 수도 있습니다.

php artisan dusk
Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다. 더 많은 API를 보려면 Laravel 5.4 문서를 확인하세요.

다른 예 보기 #waitUntilMissingDusk모달 대화 상자를 로그인 이메일에 바인딩

이 테스트를 만드는 과정 사례.

登录
找到 链接 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(&#39;/tasks&#39;)
                    ->clickLink(&#39;Support Email&#39;)
                    ->whenAvailable(&#39;#modal-support&#39;, function ($modal) use($user) {
                        $modal->assertInputValue(&#39;#support-from&#39;, $user->email);
                    });
        });
    }
}

我们来执行这个测试用例

php artisan dusk tests/Browser/SupportEmailsTest.php

Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

页面

DuskPages 是功能强大的可重用的测试类。
让我们使用 createtasktest 创建页面重构。

php artisan dusk:page CreateTaskPage

创建的页面会存放在 tests/Browser/Pages 目录中

我们来编辑这个类

<p style="margin-bottom: 7px;">public function url(){<br/>    return &#39;/tasks/create&#39;;<br/>}<br/></p>

url 可以导航 Dusk 执行的地址。

public function assert(Browser $browser){
    $browser->assertPathIs($this->url());
}

assert 定义页面的 assertions,当使用 CreateTaskPage 时,这些 assertions 将会使用 assert 方法执行。
在上面的例子中,我们只是明确 Url 是正确的。

public function elements(){
    return [        &#39;@addTask&#39; => &#39;.btn-primary&#39;,
    ];
}

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(&#39;title&#39;, &#39;My Task&#39;)
                    ->click(&#39;@addTask&#39;)
                    ->waitUntilMissing(&#39;@addTask&#39;)
                    ->assertPathIs(&#39;/tasks&#39;);
        });
    }
}

我们修改看了 createtaskpage。现在让我们重新运行我们的测试,看看是否一切正常:
和上面测试一样,因此图我就用了同一个。
Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.

위 내용은 Laravel Dusk 브라우저 테스트에 대한 자세한 소개가 더욱 우아해졌습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.