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);
我正在制作一个 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);