私は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);
}
テストで 'testAction'を複数回呼び出していますか?これはあなたのテスト方法全体ですか? –
こんにちは、いいえ、一度だけ、これは今のところそのアクションの完全なコードです。なぜなら、それは他のテストコードを書いていないからです。 –
テストしているメソッドも含めてください。何が起こっているのかを確認するのに役立ちます。 –