我正在开发Laravel应用程序。我正在为我的应用程序编写集成测试。我正在努力测试Cookie逻辑。您可以在下面看到我的代码。
我覆盖了LoginController的登录方法,并添加了以下内容
if (auth()->user()->hasRole(User::ROLE_ADMIN)) {
$accessToken = GraphQL::login($request->get('email'), $request->get('password'));
Cookie::queue("admin_access_token", $accessToken, (60 * 60 * 24) * 60);
}
如您所见,我正在尝试做的是,如果用户是admin,它将登录到另一台服务器并将访问令牌保存在cookie中。我正在使用Cookie :: queue。
这是我的测试方法。
/** @test */
public function when_login_successful_access_token_is_generated_and_stored_in_cookie_if_user_is_restaurant_admin()
{
$this->post(route('login'), [
'email' => $this->restaurantAdmin->email,
'password' => 'password'
])->assertRedirect();
dd(Cookie::get('admin_access_token'));//here, coolie value is always null
}
如您在注释中所见,在运行测试时,cookie值始终为null。我的代码有什么问题,我该如何解决?
我假设静态对象Cookie::get()
将尝试在调用的请求生命周期中获取Cookie。由于测试中没有此内容,因此cookie始终为null。
有一种方法可以查看响应中是否存在Cookie,您可以使用该方法查看是否提供了预期的结果。
$this->seeCookie('admin_access_token', 'yourtoken');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句