Я хочу создать модульное тестирование для аутентификации с помощью JWT в Laravel.
Как показывает 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