使用Bearer身份验证的Laravel-Json测试



我正在编写一个简单的测试来断言api端点响应是否返回200状态。

我的api通过sanctum中间件获得了Bearer身份验证。

我的测试功能是

public function testExample()
{
//        $response = $this->withHeader('Authorization' , 'Bearer 1|IJleXxjHgr8RaiP3Q9atJRtVCZHZKQQqBXW8NPdn')
//                            ->getJson('/api/breeds/cat/high');
$response = $this->getJson('/api/breeds/cat/high', ['Authorization' => 'Bearer longtoken']);
$response->assertStatus(200);
}

路由/api.php;

> Route::middleware('auth:sanctum')->group(function () {
>     Route::get('/breeds/{animal_type}/{name}', ListBreeds::class)->name('breed.list'); });

此测试返回403/未授权响应。如果我在Postman中使用相同的令牌和标头,那么路由就可以正常工作。

我做错了什么?

提前谢谢。

应该是这样的:

$response = $this->withHeaders([
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . 'abc',
])->getJson('/api/breeds/cat/high');

最新更新