我目前正在尝试对控制器执行集成测试,该控制器只有在使用Authorization发送请求时才可访问:Bearer 令牌(我正在使用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)都很新。