Phpunit - поставщик данных, указанный для метода, недействителен - PullRequest
0 голосов
/ 24 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...