我使用laravel 5.4。在我的测试中,我会做这样的事情:
$this->get("/api/test")->assertStatus(422)->assertJson([
"status" => "ok"
]);
当状态代码为 422 时,我会收到一个 HttpException,即使我已经完全准备好了——我什至期待它。我的问题是异常会阻止我的断言,因此assertJson
不起作用。
$this->expectException(HttpException::class)
没有帮助,因为它捕获此异常并停止,因此开始传递:
$this->expectException(HttpException::class)
$this->get("/api/test")->assertStatus(422)->assertJson([
"status" => "ok"
]);
$this->assertTrue(false);
我看到我可以自己捕获此异常,但是我将无法以简单的方式将我的断言应用于响应。我该如何解决这个麻烦?
验证错误仅在 json 或 ajax 请求上转换为 json 响应。试试这个。
$this->getJson("/api/test")->assertStatus(422)->assertJson([
"status" => "ok"
]);