我进行了以下测试:
public function testStoreMemberValidation()
{
$response = $this->withExceptionHandling()->post('/api/members', [
"name" => "Eve",
"age" => "invalid"
], ['X-Requested-With' => 'XMLHttpRequest']);
dd($response->json());
};
我试图断定响应是验证错误的形式。控制器方法如下:
public function store(Request $request)
{
$data = $request->validate([
'name' => 'required|string',
'age' => 'required|integer',
]);
Member::create($data);
}
但是,每当我调用任何调用$response->json()
的断言(大多数情况下)时,我都会得到一个异常:
Illuminate \ Validation \ ValidationException:给定的数据无效。
如何在不引发此错误的情况下对此响应执行断言?
注意,我正在使用Laravel 5.7。
答案 0 :(得分:1)
您的测试中有withExceptionHandling()
,请删除它,它应该可以工作。
$response = $this->withExceptionHandling()->post('/api/members', [
"name" => "Eve",
"age" => "invalid"
], ['X-Requested-With' => 'XMLHttpRequest']);
应该是
$response = $this->post('/api/members', [
"name" => "Eve",
"age" => "invalid"
], ['X-Requested-With' => 'XMLHttpRequest']);