5
我正在開發一個Cake 2.2的應用程序, ,目前正在編寫一些單元測試。 模型測試工作正常,我在控制器測試中遇到了一些問題。Cakephp 2.0模擬驗證碼
的情況: - 大多數的操作都需要用戶登錄 - 有自定義組件和供應商庫 - 我有燈具的所有表
問題: - 許多行動用「$這 - > Auth-> user()「方法獲取用戶數據 - 如果我爲該操作編寫測試,用戶數據(顯然)不存在
我的(不工作)解決方案: - 我試圖模擬auth組件,以便它包含user-method並始終返回一個靜態ar含有射線的用戶數據,但它返回null,下面的代碼:
$Days = $this->generate('Days', array('components' => 'Auth'));
$Days->Auth->expects($this->once())->method('user')->will($this->returnValue(array(..userdata etc.)));
$result = $this->testAction('/days/settings');
它只是口口聲聲說該方法不叫(altough戴斯控制器內部的設置方法調用它究竟是一個時間)。 模型有什麼問題?嗯..
任何幫助,將不勝感激!
CNC中 被測試的方法的代碼:
public function myDays()
{
$user = $this->Auth->user();
$days = $this->Day->find('all', array('conditions' => array('user_id' => $user['id'], 'active' => 1)));
$this->set('days', $days);
}
你在測試中多次調用'testAction'嗎?這是你的整個測試方法嗎? – 2012-07-20 14:21:15
嗨,不,只有一次,這是目前該操作中的完整代碼,因爲它不起作用,我沒有爲其編寫其他測試代碼.. – 2012-07-23 12:19:06
請還包括您正在測試的方法,它可能會幫助看看發生了什麼。 – 2012-07-23 19:06:33