`generate()`方法和CakePHP 2中的新ControllerTestCase类有什么区别?

时间:2011-11-22 08:09:10

标签: php unit-testing cakephp controller components

关于CakePHP中的单元测试,它似乎是两种主要测试操作的方法。

第一个是使用generate()方法模拟所涉及的控制器:

$Posts = $this->generate('Posts', array(
  'methods' => array(
    'isAuthorized'
  ),
  'models' => array(
    'Post' => array('save')
  ),
  'components' => array(
    'RequestHandler' => array('isPut'),
    'Email' => array('send'),
    'Session'
)
));

in CakePHP 2 a new ControllerTestCase class has been added显然可以简化此配置:

class PostControllerTest extends ControllerTestCase {

    public $fixtures = array('app.post');

    function testIndex() {
        $result = $this->testAction('/post/index');
        debug($result);
    }
    ...
}

通过ControllerTestCase类使用组件时,我发现了几个问题。我想知道这两种方法之间有什么区别。

谢谢!

1 个答案:

答案 0 :(得分:1)

不,这实际上是一样的,generate方法用于在使用testAction之前配置控制器,这样你就可以控制应该模拟哪些组件,模型或控制器方法在测试动作之前。方法generateControllerTestCase

中可用