ADmad/JwtAuth身份验证集成测试控制器Cakephp 3

ADmad/JwtAuth身份验证集成测试控制器Cakephp 3,cakephp,integration-testing,cakephp-3.0,jwt,Cakephp,Integration Testing,Cakephp 3.0,Jwt,我目前正在尝试对一个控制器执行集成测试,该控制器只有在发送了带有Authorization:Bearer-token的请求时才可访问(我使用的是ADmad/JwtAuth插件)。以下是测试控制器的代码: public function testViewShouldPass(){ $accessToken = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE2LCJleHAiOjE0NTgyNDEzNDF9.pJ2q_t6d2wBPF4Ie

我目前正在尝试对一个控制器执行集成测试,该控制器只有在发送了带有Authorization:Bearer-token的请求时才可访问(我使用的是ADmad/JwtAuth插件)。以下是测试控制器的代码:

public function testViewShouldPass(){
    $accessToken = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE2LCJleHAiOjE0NTgyNDEzNDF9.pJ2q_t6d2wBPF4Ie_gOx-_o0zWfDB0mgYeAan4WaSdQ';
    $this->configRequest([
        'headers' => [
            'Authorization' => 'Bearer ' . $accessToken,
            'Accept' => 'application/json'
        ]
    ]);
    $data = $this->get('/api/pictures/1.json');
    $this->assertResponseOk(); // will throw an unauthorized exception
    $this->assertResponseContains('Pictures');
}

如何确保测试方法没有引发未经授权的异常?我知道该令牌需要以某种方式进行模拟,但我不知道如何进行模拟,因为我对单元/集成测试(无论是一般测试还是Cakephp测试)都相当陌生

您不能模拟令牌,但可以模拟
JwtAuthenticate::payload()
以返回包含有效数据的ArrayObject。好的,我将很快检查。我在单元/集成测试中临时阻止了整个令牌过程。
JwtAuthenticate::payload()
是否直接提供令牌?