首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 9单元试验

Laravel 9单元试验
EN

Stack Overflow用户
提问于 2022-07-04 16:12:01
回答 1查看 282关注 0票数 0

下面是我创建的更新和它的单元测试。当我运行测试时,我得到以下错误:“预期响应状态代码200,但收到404。断言200与404相同的断言失败。”你能帮帮我吗?在我的控制器里:

代码语言:javascript
复制
 /** @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);

这是我的单元测试:

代码语言:javascript
复制
 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);
}

我的路线:

代码语言:javascript
复制
Route::put('deposits/{deposits}/cancel', [DepositController::class, 'update']);
EN

回答 1

Stack Overflow用户

发布于 2022-07-04 17:03:46

在您的测试中,您使用的是路由api/deposits/{$deposit->id},而您已经将路由声明为:

代码语言:javascript
复制
Route::put('deposits/{deposits}/cancel', [DepositController::class, 'update']);

因此,我猜您需要将实际调用更新到:

代码语言:javascript
复制
$this->putJson("api/deposits/{$deposit->id}/cancel", [
                                'NumTel' => '22900000000',
                                'observ' => 'Second'
                               ])
     ->assertStatus(200);

我也有点搞不懂为什么您没有注册使用api后缀的路由,例如:

代码语言:javascript
复制
Route::put('api/deposits/{deposits}/cancel', [DepositController::class, 'update']);

但也许这是拉拉帮你处理的东西?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72859534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档