我想在Laravel中创建用于JWT身份验证的单元测试。
PHPUnit显示使用数据提供程序,请使用数组数组将数据从一个函数传递到另一个函数。我模拟了一个登录请求,然后获得了用于注销的令牌,但是注销测试始终显示警告无效的数据提供者。尽管我可以在登录功能中使用var_dump
令牌,但它似乎在注销中消失了。下面是我的代码:
public function test_successful_login() {
$res = $this
->withHeaders([
'accept' => 'application/json',
'cache-control' => 'no-cache',
])
->post('/api/v1/auth/register', [
'email' => $this->user->email,
'name' => $this->user->name,
'password' => $this->user->password,
])
->assertOk();
// it's ok
// var_dump(json_decode($res->getContent())->access_token);
// die;
return [['token' => json_decode($res->getContent())->access_token]];
}
/**
* @dataProvider test_successful_login
*/
public function test_successful_logout($token) {
// invalid here
// var_dump(func_get_args());
// die;
$this
->withHeaders([
'cache-control' => 'no-cache',
'accept' => 'application/json',
'authorization' => 'Bearer '.$token,
])
->post('/api/v1/auth/logout')
->assertOk();;
}
如何获取令牌?任何帮助表示赞赏。
我正在使用Laravel 5.7和PHPUnit 8.1