2016-10-23 3 views
5

문제가 있습니다 - 내 API에 Laravel Passport를 사용하고 있습니다. 테스트를 써야 해. 내 테스트에서 WithoutMiddleware 특성을 사용할 때마다 내가 사용하는 Implicit route model binding 기능을 사용할 수 없게됩니다. 내가 그 특성을 사용하지 않을 때마다 나는 나의 시험에서 직접 인증을 받아야한다. 이를 위해 Passport를 통해 API 토큰을 만들어야합니다.Laravel Passport 테스트하기

내 테스트에서 DatabaseTransactionsDatabaseMigrations 개의 특성을 사용하기 때문에 Passport는 artisan passport:install을 통해 테스트하기 전에 설치해야합니다. 이렇게하면 테스트를 실행하는 데 엄청난 시간이 걸리며 올바른 방법이 아닌 것처럼 느껴집니다. auth 미들웨어 만 비활성화하는 방법이 있습니까? 또는 이것에 관해 갈 다른 어떤 생각?

답변

1

조금 늦었지만이 issue에 따르면이 기능은 현재 지원되지 않으며 곧 변경 될 계획이 없습니다.

그러나 모든 Laravel 테스트 클래스는 withoutMiddleware 메서드를 상속받습니다.이 메서드는 disable middleware on specific methods에 사용할 수 있습니다. 이 당신에게 도움이 확실하지만, 그냥 거기에 던지는되지 않음 : 또한 테스트 응용 프로그램 인스턴스에서 runningUnitTests() 메서드를 호출하여 미들웨어 자체 내에서 실행되고 있는지 확인할 수 있습니다

public function testBasicExample() 
{ 
    $this->withoutMiddleware(); 

    $this->visit('/') 
     ->see('Laravel 5'); 
} 

.