私のコントローラの1つで承認をテストしようとすると、特定の種類のユーザーだけが何らかのアクションにアクセスできることを確認しています。しかし、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()が必要です。管理者またはroot以外の役割を持つユーザーがadminのアクションにアクセスしようとすると失敗します。
?私は最もクリーンな方法は、模倣されたparams/mockedリクエストでisAuthorizedを直接テストすることだと思います。 – nanoman