2
我試圖在我的一個控制器中測試授權,以確保只有某些類型的用戶可以訪問某些操作。但是運行測試時從不會調用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'));
}
我的測試功能:
public function testArticlesIndex() {
$this->generate('Articles', array(
'components' => array('Auth')
));
$this->testAction('/admin/articles', array('return' => 'view'));
$this->assertEmpty($this->view);
}
我嘗試了很多東西嘲諷AuthComponent,而不是嘲笑它。我無法找到一種方法來重現這種情況,這需要isAuthorized(),其中具有admin或root以外的角色的用戶嘗試訪問admin上的操作並失敗。
你怎麼嘲笑當前會話的用戶呢?我認爲最簡潔的方法是直接用嘲諷的參數/嘲弄的請求來測試isAuthorized。 – nanoman