내 컨트롤러 중 하나에서 권한을 테스트하여 확실한 종류의 사용자 만 일부 작업에 액세스 할 수 있는지 확인하려고합니다. 그러나 테스트를 실행할 때 AppController의 isAuthorized() 메서드는 호출되지 않습니다.Controller 테스트를 실행할 때 isAuthorized()가 호출되지 않는 이유는 무엇입니까?
public function isAuthorized($user = null){
if(!isset($this->request->params['admin'])){
return true;
}
return in_array($user['role'], array('admin', 'root'));
}
내 테스트 기능 :이 방법은 같습니다 어떻게 내가 AuthComponent을 조롱 물건을 많이 시도하고 조롱하지
public function testArticlesIndex() {
$this->generate('Articles', array(
'components' => array('Auth')
));
$this->testAction('/admin/articles', array('return' => 'view'));
$this->assertEmpty($this->view);
}
. 나는이 상황을 재현 할 수있는 방법을 찾지 못했습니다. isAuthorized()가 필요합니다. admin 또는 root가 아닌 다른 역할을 가진 사용자가 admin에서 작업에 액세스하려고 시도하고 실패합니다.
? 가장 깨끗한 방법은 조롱 된 params/조롱 한 요청으로 직접 isAuthorized를 테스트하는 것입니다. – nanoman