gpt4 book ai didi

unit-testing - Cakephp 2.0 模拟身份验证

转载 作者:行者123 更新时间:2023-12-04 04:53:39 25 4
gpt4 key购买 nike

我正在用 Cake 2.2 开发一个应用程序,
并且目前正在编写一些单元测试。
模型测试工作正常,我在 Controller 测试方面有一些问题。

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

问题:
- 许多操作使用“$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 Controller 中的设置方法只调用了一次)。
样机有什么问题?嗯..

任何帮助,将不胜感激!

-编辑-
正在测试的方法的代码:
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() 是一个静态方法。

关于unit-testing - Cakephp 2.0 模拟身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11579508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com