Laavel Dusk의 브라우저 통합 테스트에서 laavel-admin 인증 획득

컨디션

  • macOS 로컬에서 크롬driver-mac-intel 드라이브 사용
  • laavel은 v8입니다.0 계열, laavel-admin은 v1입니다.8 계열 사용설정은 참조Laravel Dusk

    실행


    ./vendor/laravel/dusk/bin/chromedriver-mac-intel
    
    Heasless ChromeDriver 시작
    php artisan --env=testing serve
    
    테스트 서버 시작
    php artisan test tests/Browser
    
    테스트 실행
    <?php
    
    namespace Tests\Browser;
    
    use App\Models\Administrator;
    use Laravel\Dusk\Browser;
    use Tests\DuskTestCase;
    use Illuminate\Database\Eloquent\Factories\Factory;
    
    class ExampleTest extends DuskTestCase
    {
        /**
         * A basic browser test example.
         *
         * @return void
         */
        public function testBasicExample()
        {
            $class = config('admin.auth.providers.admin.model');
            $admin = Factory::factoryForModel($class)->create();
    
            $this->browse(function (Browser $browser) use ($admin) {
                $browser->loginAs($admin, config('admin.auth.guard'))
                    ->visit('/')
                    ->assertSee($admin->name);
            });
        }
    }
    
    로그인 확인 사용자 이름의 테스트 코드 표시 여부
    다만 이렇게 하면 Controller에서 호출Admin::user()을 해결할 수 없기 때문에 아래에서 설정합니다
    Admin::guard()->setUser($admin);
    

    좋은 웹페이지 즐겨찾기