0

刚开始在我的 CakePHP 应用程序中为我的控制器创建一些单元测试,但是我完全不知道应该如何为 Auth 组件创建一个模拟,我已经阅读了 CookBook 并认为我做对了,但是一直抛出这个错误。

Error: Call to a member function allow() on a non-object    

在我正在测试的控制器中,有一个带有以下代码的 beforeFilter 函数:

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('create');
}

在我的测试中,我包括以下内容:

$Leagues = $this->generate('Leagues', array(
    'components' => array(
        'Auth'
    )
));

我也玩过,staticExpects()但它似乎没有太大影响(我也不确定我需要投入什么staticExpects())。

4

2 回答 2

0

你说的模拟是什么意思?只是用你设置的数据填充一个对象?你得到的错误是因为你需要使用

$this->Auth->allow(array('create'))

于 2014-01-03T17:54:08.417 回答
0

发现问题 - 我已将 Auth 组件包含在 AppController.php 中,而不是专门包含在我试图测试的控制器中。通过将它包含在我的控制器中,错误已经消失了。

于 2014-01-05T15:55:03.737 回答