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 在测试部分。