2012-07-20 16 views
5

私はCake 2.2で のアプリを開発しており、現在いくつかの単体テストを書いています。 モデルテストは正常に動作しています。私は一般的なコントローラーテストにいくつか問題があります。Cakephp 2.0模擬認証

状況: - アクションのほとんどは、ユーザーのログイン を要求 - 私はすべてのテーブルの備品

を問題持っている - カスタムコンポーネントとベンダライブラリ があります。 は - 多くのアクションが「$これを使用 - 私は、そのアクションのためのテストを記述する場合、ユーザー・データは(明らかに)ある

私の(動作しない)ソリューションexistantない - > Auth->ユーザー()」メソッドは、 は、ユーザデータが取得する: を - 私は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)メソッドが呼び出されなかったことを言って続けています。 モックアップで何が問題になっていますか?うーん..

助けていただければ幸いです!

-edit-試験されている方法のコード:たぶん使用

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); 
} 
+0

テストで 'testAction'を複数回呼び出していますか?これはあなたのテスト方法全体ですか? –

+0

こんにちは、いいえ、一度だけ、これは今のところそのアクションの完全なコードです。なぜなら、それは他のテストコードを書いていないからです。 –

+0

テストしているメソッドも含めてください。何が起こっているのかを確認するのに役立ちます。 –

答えて

1

$Days->Auth->staticExpects(

をユーザので()は静的メソッドです。