我正在编写一个简单的测试来断言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');