Cakephp 2.0模拟身份验证



我正在Cake 2.2中开发一个应用程序,目前正在编写一些单元测试。模型测试运行良好,我对控制器测试总体上有一些问题。

情况:-大多数操作都需要用户登录-有自定义组件和供应商库-我有所有桌子的固定装置

问题是:-许多操作使用"$this->Auth->user()"方法来获取用户数据-如果我为该操作编写测试,则用户数据(显然)不存在

我的(无效)解决方案:-我试图模拟auth组件,使其包含用户方法,并始终返回一个包含用户数据的静态数组,但它返回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');

它只是不断地说该方法没有被调用(尽管Days控制器中的settings方法只调用了一次)。模型出了什么问题?嗯。

任何帮助都将不胜感激!

-编辑-正在测试的方法的代码:

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

可能使用:

$Days->Auth->staticExpects(

因为user()是一个静态方法。

相关内容

  • 没有找到相关文章

最新更新