laravel - 在单元测试 laravel 8 中测试 api 时断言失败
问题描述
我有 api 控制器并在邮递员中测试没有错误。
public function deleteUserDetails(Request $request)
{
$user = User::find(auth('api')->user()->id);
if ($user) {
$detUser = UserDetail::where('user_id', $user->id)->first();
if ($detUser) {
$detUser->delete();
$response = [
'status' => true,
'message' => 'Successfully Deleted.'
];
$status = 204;
} else {
$response = [
'status' => true,
'message' => 'Data No Found.'
];
$status = 404;
}
} else {
$response = [
'status' => false,
'message' => 'Unauthorized.',
];
$status = 401;
}
return response()->json($response, $status);
}
这是路线/api
Route::delete('deleteUserDetails', [UserDetailAPIController::class, 'deleteUserDetails'])->name('deleteUserDetails');
这是我的单元测试代码
public function test_api_delete_user_details(){
$token ='secret-token';
$response = $this->withHeader('Authorization', 'Bearer ' . $token)
->delete(route('deleteUserDetails'));
$response->assertStatus(204);
}
当我运行测试时,我得到了这个错误,..
- Tests\Unit\API\User\UserTest::test_api_add_or_edit_user_details 预期状态代码 204 但收到 500。204
Failed asserting
与 500 相同。
解决方案
推荐阅读
- azure-databricks - Azure Databricks 计划作业已成功执行,但数据未加载到目标
- javascript - 有没有办法在服务人员中重定向导航请求?
- firebase - 无法从 firebase 读取列表,总是在 snapshot.data 上返回 null
- javascript - 如何通过 jest mock 验证错误消息以在 catch 块内抛出错误
- python - 如何从数据框中的 URL 下载图像并使用存储在数据框中的特定 id 标记集合图像?
- sql-server - 查询必须等待 XX 秒才能获得 MemoryGrant
- javascript - 如果 scrollTop 倒退,你怎么记得它?
- sql - SQL:动态 SQL 问题
- azure-devops - 关闭拉取请求而不将其合并到 Azure DevOps 中的上游分支
- html - 如何将离子日期时间中的开始时间和结束时间分开 30 分钟