特定の種類のユーザーのみがいくつかのアクションにアクセスできることを確認するために、コントローラーの 1 つで承認をテストしようとしています。ただし、テストの実行時に AppController の isAuthorized() メソッドが呼び出されることはありません。メソッドは次のようになります。
public function isAuthorized($user = null){
if(!isset($this->request->params['admin'])){
return true;
}
return in_array($user['role'], array('admin', 'root'));
}
私のテスト機能:
public function testArticlesIndex() {
$this->generate('Articles', array(
'components' => array('Auth')
));
$this->testAction('/admin/articles', array('return' => 'view'));
$this->assertEmpty($this->view);
}
私は AuthComponent をモックし、それをモックしないことをたくさん試しました。管理者またはルート以外のロールを持つユーザーが管理者のアクションにアクセスしようとして失敗する isAuthorized() が必要になるこの状況を再現する方法を見つけることができませんでした。