我正在尝试使用CakePhP 2.3和PHPUnit 3.7进行单元测试。我想测试客户控制器中的索引功能。在我的控制器中,我有:
public function index() {
$this->Customer->recursive = -1;
$data = $this->paginate('Customer', array( 'Customer.status'=>'active'));
$this->set('customers', $data);
}
我尝试按照book.cakephp.org中的示例进行操作,因此我创建了fixture类,其中我导入了Customer模式和所有记录。
class CustomerFixture extends CakeTestFixture{
public $import = array('model' => 'Customer', 'records' => true);
}
最后我的测试类看起来像这样:
class CustomersControllerTest extends ControllerTestCase {
public $fixtures = array('app.customer');
public function testIndex() {
$result = $this->testAction('/customers/index');
debug($result);
}
}
我还在database.php中添加了$ test变量,这应该可以正常工作,因为在我运行测试后,我从测试数据库中的默认数据库中获取了customers表中的所有记录。
当我运行测试时,出现以下错误:
错误:无法重新声明Mock_CakeRequest_1de9f3b8 :: offsetUnset()