Laravel 5.4 升级失败 API Dingo 测试
Laravel 5.4 upgrade broke API Dingo tests
我使用 Laravel 5.3 和 Dingo 来管理 API 请求。我正在尝试升级到 Laravel 5.4,但我的测试失败了。
这里有一个案例:
$request = $this->get('/api/authenticated-user', $this->headers());
$limit = $request->response->headers->get("X-RateLimit-Limit");
$times = $request->response->headers->get("X-RateLimit-Remaining") - 1;
do {
$request = $this->get('/api/authenticated-user', $this->headers());
$request->seeHeader("X-RateLimit-Limit", $limit);
$request->seeHeader("X-RateLimit-Remaining", $times);
$request->seeStatusCode(($times == 0 ? 429 : 200));
$times--;
} while ($times > 0);
升级前效果很好,但现在又回来了:
Undefined property: Dingo\Api\Http\Response::$response
这个错误发生在第二行。如果我删除 response
它会起作用:
$limit = $request->headers->get("X-RateLimit-Limit");
但是以下行失败了:
$request->seeHeader("X-RateLimit-Limit", $limit);
在这种情况下 seeHeader
未定义。
我将作曲家从 "dingo/api": "1.0.*@dev"
更改为 "dingo/api": "v1.0.0-beta8"
。
只需意识到 "problem" 在 Laravel 中,而不是在 Dingo 中。错误信息误导了我。
Laravel 5.4有一个新的测试层,为了提供兼容性有一个包。 Laravel 升级指南包含所有信息:https://laravel.com/docs/5.4/upgrade 在测试部分。
我使用 Laravel 5.3 和 Dingo 来管理 API 请求。我正在尝试升级到 Laravel 5.4,但我的测试失败了。
这里有一个案例:
$request = $this->get('/api/authenticated-user', $this->headers());
$limit = $request->response->headers->get("X-RateLimit-Limit");
$times = $request->response->headers->get("X-RateLimit-Remaining") - 1;
do {
$request = $this->get('/api/authenticated-user', $this->headers());
$request->seeHeader("X-RateLimit-Limit", $limit);
$request->seeHeader("X-RateLimit-Remaining", $times);
$request->seeStatusCode(($times == 0 ? 429 : 200));
$times--;
} while ($times > 0);
升级前效果很好,但现在又回来了:
Undefined property: Dingo\Api\Http\Response::$response
这个错误发生在第二行。如果我删除 response
它会起作用:
$limit = $request->headers->get("X-RateLimit-Limit");
但是以下行失败了:
$request->seeHeader("X-RateLimit-Limit", $limit);
在这种情况下 seeHeader
未定义。
我将作曲家从 "dingo/api": "1.0.*@dev"
更改为 "dingo/api": "v1.0.0-beta8"
。
只需意识到 "problem" 在 Laravel 中,而不是在 Dingo 中。错误信息误导了我。
Laravel 5.4有一个新的测试层,为了提供兼容性有一个包。 Laravel 升级指南包含所有信息:https://laravel.com/docs/5.4/upgrade 在测试部分。