我写了这个单元测试登录laravel
class LoginTest extends TestCase
{
/** @test */
public function auth()
{
$this->withoutMiddleware();
$this->visit('/login')
->post('/login', ['example@example.com', "password"=>"1234"])
->seeJson([
"login"=>"true"
]);
$this->get('/dashboard');
}
}
但我收到此错误
Invalid JSON was returned from the route. Perhaps an exception was thrown?
我如何解决这个问题?
答案 0 :(得分:1)
我建议您使用Guzzle Library并向您发出请求,然后转储完整响应:
$response = $http->request('POST', 'http://your_laravel_public/login', [
'form_params'=>[
'username' => 'example@example.com',
'password' => '1234'
]
]);
$response_array = json_decode((string) $response->getBody(), true);//use this to see the actual response
dd($response_array);
这很有用,因为您可能稍后在项目中使用Passport或任何其他身份验证服务。此时,您需要发送标题以进行授权,而您无法通过本地laravel单元测试来执行此操作。
给它一个滚动。