测试Laravel Passport

Pav*_*och 5 php testing laravel laravel-passport

我有一个问题 - 我正在使用Laravel Passport作为我的api.我需要写测试.每当我WithoutMiddleware在测试中使用特征时,它都会禁用Implicit route model binding我使用的功能.每当我不使用该特性时,我需要直接从我的测试中进行身份验证.为此,我需要通过Passport创建API令牌.

但是,需要在测试之前安装Passport,artisan passport:install因为我的测试正在使用DatabaseTransactionsDatabaseMigrations特性.当我这样做时,测试需要花费大量的时间来运行,我觉得这不是正确的方法.有没有办法只禁用auth中间件?或者其他任何想法?

sam*_*rap 2

有点晚了,但根据这个问题,目前不支持此功能,并且没有计划很快改变它。

但是,所有 Laravel 测试类都会继承该withoutMiddleware方法,您可以使用该方法禁用特定方法上的中间件。不确定这对你是否有帮助,但只是把它扔在那里:

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

    $this->visit('/')
         ->see('Laravel 5');
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过调用应用程序实例上的方法来检查测试是否正在中间件本身内运行runningUnitTests()