php laravel api 总是在第一次成功调用后的第二次调用中测试 returns 404

php laravel api test always returns 404 in the second call after a first successful call

我正在制作一个 API 测试函数,其中包括在同一测试中两次发送 post 请求。

第一个请求成功,没有问题,我可以毫无问题地断言响应。但是,在第二个请求中,找不到路由,并且立即响应returns 404 error。即使我使用相同的请求。

这里是测试函数的样子:

public function tesAbc(\ApiTester $I)
    {
        $I->haveHttpHeader('Accept', 'application/json');
        $request = [
            'username' => 'abc',
            'password' => 'testABc',
            'data' => [
                'param1' => '123',
                'param2' => '456'
            ]
        ];

        /* the first request, response always 200 */
        $I->sendPOST('confirmation/slot', $request);

        $I->seeResponseCodeIs(200);
        $I->seeResponseIsJson();
       

        /* the second request, response always 404 */
        $I->sendPOST('confirmation/slot', $request);

        $I->seeResponseCodeIs(200);
        $I->seeResponseIsJson();
        $I->dontSeeResponseJsonMatchesJsonPath('$.data[*]');
    }

问题是您使用了相对 URI confirmation/slot

第一个请求转到 /confirmation/slot,然后第二个请求与此相关,然后转到 `/confirmation/confirmation/slot.

解决方法很简单,在 URI 中使用前导 /:

$I->sendPOST('/confirmation/slot', $request);