Unit testing CakePHP应用程序中的单元测试脚本

Unit testing CakePHP应用程序中的单元测试脚本,unit-testing,cakephp,phpunit,Unit Testing,Cakephp,Phpunit,我已经使用CakePHP开发了一个deal应用程序。现在我想使用PHPUnit编写单元脚本。我已经在我的服务器上安装了PHPUnit,测试核心测试工作正常。安装的Xdebug也用于代码分析。当我为现有的应用程序编写脚本时,它就不起作用了。我能够为模型中的登录方法编写单元脚本。但无法为其余方法编写脚本 <?php App::uses('User', 'Model'); class UserTest extends CakeTestCase { public $fixtures =

我已经使用CakePHP开发了一个deal应用程序。现在我想使用PHPUnit编写单元脚本。我已经在我的服务器上安装了PHPUnit,测试核心测试工作正常。安装的Xdebug也用于代码分析。当我为现有的应用程序编写脚本时,它就不起作用了。我能够为模型中的登录方法编写单元脚本。但无法为其余方法编写脚本

<?php

App::uses('User', 'Model');

class UserTest extends CakeTestCase {
    public $fixtures = array('app.user');
    public $dropTables = false;
    public function setUp() {
        parent::setUp();
        $this->User = ClassRegistry::init('User');
    }

    public function testLogin() {
         $result = $this->User->find('count', array(
            'conditions' => array(
                // making some assumptions about the test data here
                'email' => 'test.user@gmail.com',
                'password' => 'f1054da373ace628dc73b8ec52eb28072b074940',
            ),));
        $expected = 1;
        $this->assertEquals($expected, $result);
    }

}
?>


它运行良好。但我无法为其余方法编写脚本。

尝试使用烘焙和烘焙测试,以开始正确的测试结构:

<?php

App::uses('User', 'Model');

class UserTest extends CakeTestCase {
    public $fixtures = array('app.user');
    public $dropTables = false;
    public function setUp() {
        parent::setUp();
        $this->User = ClassRegistry::init('User');
    }

    public function testLogin() {
         $result = $this->User->find('count', array(
            'conditions' => array(
                // making some assumptions about the test data here
                'email' => 'test.user@gmail.com',
                'password' => 'f1054da373ace628dc73b8ec52eb28072b074940',
            ),));
        $expected = 1;
        $this->assertEquals($expected, $result);
    }

}
?>
cake bake test
这可能有助于按照Cake对测试结构的期望,将您推向编写方向。它还将创建空方法来测试控制器中的所有方法


你能更具体地说明什么不起作用吗?

为什么要使用
$dropTables=false?您的第一个测试,
testLogin()
实际上并不测试您的任何代码。发布一个实际的测试方法并告诉我们什么方法不能测试(或者为什么不能测试)是很有用的。