下面是我创建的更新和它的单元测试。当我运行测试时,我得到以下错误:“预期响应状态代码200,但收到404。断言200与404相同的断言失败。”你能帮帮我吗?在我的控制器里:
/** @var \App\Models\Transaction */
$previousTrans = Transaction::whereNroTransaction($request->input('transaction_id'))->first();
if (is_null($previousTrans)) {
return response()->json([
'success' => false,
'message' => 'Transaction Not Found'
], 404);
}
$cancelingTrans = $previousTrans->replicate([
'NroTransaction',
'FechaTrans',
'EstPrisEnCompte',
'Msg_error',
'NumTrans_cancel',
'CanalTransaction'
]);
$cancelingTrans->fill([
'NumTel' => $request->input('msisdn'),
'observ' => $request->input('observation'),
'TipoTrans' => 9
]);
if ($cancelingTrans->save()) {
return new TransactionResource($cancelingTrans);
}
return response()->json([
'success' => false,
'message' => 'Could not cancel the deposit'
], 500);这是我的单元测试:
public function test_deposit_canceled()
{
$deposit = Transaction::factory()->create([
'NumTel' => '22899999999',
'observ' => 'first'
]);
$this->putJson("api/deposits/{$deposit->id}", [
'NumTel' => '22900000000',
'observ' => 'Second'
])
->assertStatus(200);
}我的路线:
Route::put('deposits/{deposits}/cancel', [DepositController::class, 'update']);发布于 2022-07-04 17:03:46
在您的测试中,您使用的是路由api/deposits/{$deposit->id},而您已经将路由声明为:
Route::put('deposits/{deposits}/cancel', [DepositController::class, 'update']);因此,我猜您需要将实际调用更新到:
$this->putJson("api/deposits/{$deposit->id}/cancel", [
'NumTel' => '22900000000',
'observ' => 'Second'
])
->assertStatus(200);我也有点搞不懂为什么您没有注册使用api后缀的路由,例如:
Route::put('api/deposits/{deposits}/cancel', [DepositController::class, 'update']);但也许这是拉拉帮你处理的东西?
https://stackoverflow.com/questions/72859534
复制相似问题