CakePHP 2.2 RC1を使用してアプリケーションをテストしようとしていますが、コントローラーの特定のアクションでAuthオブジェクトの情報が1つ必要です。テストでは、Authコンポーネントのモックオブジェクトを作成しましたが、モックでメソッドを呼び出すとオブジェクトが無効になります。これを入れないと、すべてが正常に機能します。
動作しないモックオブジェクトの下
$this->controller->Auth
->staticExpects($this->any())
->method('user')
->with('count_id')
->will($this->returnValue(9));
注目してくれてありがとう。
-
編集
私のテストケースの完全なコードの上に、これは非常に単純なテストです。
class TagsControllerTest extends ControllerTestCase {
public function testView(){
$Tags = $this->generate('Tags', array(
'components' => array(
'Session',
'Auth' => array('user')
)
));
$Tags->Auth->staticExpects($this->any())
->method('user')
->with('count_id')
->will($this->returnValue(2));
$result = $this->testAction('/tags/view');
$this->assertEquals($result, 2);
}
}
そして、タグコントローラーでの私のアクションのコードです。これには(テスト目的で)count_idをパラメーターとして持つユーザーオブジェクトの戻り値はありません。
public function view(){
return $this->Auth->user('count_id');
}
テストを実行すると、次のメッセージが表示されます。
メソッド名の期待値は、0回以上呼び出された場合と同じです。呼び出しのパラメーター0 AuthComponent :: user(null)が期待値と一致しません。nullが期待される'count_id'と一致することの表明に失敗しました。