Laravel 5.7在Passed中使用Passport进行测试

时间:2019-02-04 14:12:01

标签: laravel laravel-5.7 laravel-passport laravel-seeding laravel-testing

我有一个UsersTableSeeder,它可以生成Passport个人令牌:

$user = factory(User::class)->create([
    'email' => 'someone@example.com',
]);

Artisan::call('passport:client', [
    '--personal' => 'default',
    '--no-interaction' => true,
]);

但是,当我使用$this->artisan('db:seed');进行测试时,我收到以下错误:

  

Mockery \ Exception \ BadMethodCallException:收到Mockery_1_Illuminate_Console_OutputStyle :: askQuestion(),但未指定期望

1 个答案:

答案 0 :(得分:1)

passport:client命令失败,因为即使没有提供--no-interaction标志,它也会询问客户的名字。而且测试不知道该怎么回答,所以失败了。

以下对我有用。

Artisan::call('passport:client --name=<client-name> --no-interaction --personal');

希望有帮助!