phpunit-为method指定的数据提供者无效

时间:2019-05-24 07:43:10

标签: laravel-5 phpunit

我想在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

0 个答案:

没有答案