use*_*360 1 phpunit laravel laravel-passport
所以我想对我的 API 端点进行单元测试。我正在使用 Laravel 5.8 并且使用 Passport 完成 api 身份验证我有以下测试:
public function guest_can_login()
{
$user = factory(User::class)->create();
$response = $this->json('POST', 'api/login', [
'email' => $user->email,
'password' => 'secret',
]);
$response
->assertStatus(200)
->assertJson([
'success' => true,
]);
}
Run Code Online (Sandbox Code Playgroud)
当我使用 Postman 执行请求时,它运行良好,对用户进行身份验证并返回一个令牌,但是当我启动测试时它失败了(“预期状态代码 200,但收到 500。”)
所以我在回复中更深入地搜索,我发现了这个:
"message": "未找到个人访问客户端。请创建一个。"
不知道为什么会发生这种情况,如果有人对此有所了解
编辑:固定见下面我的最后一个答案
只是为了让有同样问题的人清楚,问题在于我使用内存数据库进行测试,每次运行测试时它都会重置,所以当然护照密钥也会被擦除,这就是为什么添加\Artisan::call('passport:install');在测试的开始解决了这个问题。
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |