【发布时间】:2020-01-10 08:23:08
【问题描述】:
我不是专家,我找不到任何关于我的错误的信息。我希望有人能帮助我理解我的错误。
我正在尝试在 Laravel 中测试对 POST 请求所需属性的验证。
测试
我正在使用assertJsonValidationErrors 方法来验证来自我的控制器的 JSON 错误。
/** @test */
public function name_email_password_required_in_creation()
{
$response = $this->post('/users', [
'contact' => '545678987'
]);
$response->assertJsonValidationErrors(['name','password','email']);
}
控制器
$validator = Validator::make($request->all(),[
'name' => 'required',
'email' => 'required|unique:users,email',
'password' => 'required',
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 400);
}
错误:
1) 测试\Feature\UsersTest::name_email_password_required_in_creation 未能在键的响应中找到验证错误:'name'
响应没有 JSON 验证错误。 断言数组具有键“名称”失败。
我在测试里面申请了一个
dd($response->getContent()); 看看发生了什么,在响应中是:
"{"name":["The name field is required."],"email":["The email field is required."],"password":["The password field is required."]}"
它似乎是一个字符串,但我不知道它是否导致错误,因为JSON包含关键字段错误。
我知道如何解决它。提前致谢。
【问题讨论】:
标签: json laravel validation phpunit