我正在尝试使用 CakePHP 2.2 RC1 测试我的应用程序,在我的控制器的某些操作中,我需要 Auth 对象的一个信息,在我的测试中,我为 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);
}
}
而我在 Tag 控制器中的操作代码,这没有更多(用于测试目的)它们返回带有 count_id 作为参数的用户对象。
public function view(){
return $this->Auth->user('count_id');
}
运行测试我收到了这条消息:
方法名称的期望失败等于调用 0 次或多次时 调用 AuthComponent::user(null) 的参数 0 与期望值不匹配。无法断言 null 与预期的“count_id”匹配。