2016-10-23 5 views
5

У меня проблема: я использую Laravel Passport для своего api. Мне нужно написать тесты. Всякий раз, когда я использую признак WithoutMiddleware в своих тестах, он отключает функцию Implicit route model binding, которую я использую. Всякий раз, когда я не использую эту черту, мне нужно пройти аутентификацию непосредственно из моего теста. Для этого мне нужно создать токен API через Passport.Тестирование Laravel Passport

Паспорт, однако, должен быть установлен до тестирования через artisan passport:install, так как в моих тестах используются DatabaseTransactions и DatabaseMigrations. Когда я это делаю, тесты занимают огромное количество времени, чтобы бежать, и я чувствую, что это не правильный путь. Не существует способа отключить только промежуточное ПО auth? Или любые другие идеи, чтобы пойти об этом?

ответ

1

Немного поздно на вечеринку, но в соответствии с этим issue эта функция в настоящее время не поддерживается, и в ближайшее время ее не планируется менять.

Однако все классы теста Laravel наследуют метод withoutMiddleware, который можно использовать для disable middleware on specific methods. Не уверен, если это полезно для вас, а просто выбросить его там:

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

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

Вы также можете проверить, если тесты работают внутри самого промежуточного слоя путем вызова метода runningUnitTests() на экземпляре приложения.

 Смежные вопросы

  • Нет связанных вопросов^_^