所以我正在为一个 laravel 5.7 网络应用程序编写单元测试,当我测试登录时它给我错误 422(我知道它与无效数据有关,我只是不知道如何修复它)
public function testRegularUserLogin_CreatedRegularUse_ReturnsStoreView()
{
$regularUser = factory( User::class)->create();
$response = $this->json('POST','/login',
[
'email' => $regularUser->email,
'password' => $regularUser->password,
'_token' => csrf_token()
]);
$response->assertStatus(200);
}
我试过在标题上使用 csrf token
最佳答案
你应该只是模拟身份验证: 做这样的事情
public function getFakeClient()
{
$client = factory(App\User::class)->create();
$this->be($client);
Auth::shouldReceive('user')->andReturn($this->client);
Auth::shouldReceive('check')->andReturn(true);
return $this->client;
}
然后
$user = $this->getFakeClient();
$user->shouldReceive('posts')->once()->andReturn(array('posts'));
由 Taylor Otwell 本人推荐 here .
关于testing - 如何在单元测试中摆脱错误 422 laravel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52917920/