Unit testing CakePHP-未调用单元测试验证
我正在做一些单元测试,但是在模型验证方面遇到了问题,没有得到调用 这是我在赛程中看到的Unit testing CakePHP-未调用单元测试验证,unit-testing,cakephp,Unit Testing,Cakephp,我正在做一些单元测试,但是在模型验证方面遇到了问题,没有得到调用 这是我在赛程中看到的 <?php class ItemFixture extends CakeTestFixture { var $name = 'Item'; var $import = array( 'model' => 'Item', 'table' => 'items' ); var $records = array
<?php
class ItemFixture extends CakeTestFixture {
var $name = 'Item';
var $import = array(
'model' => 'Item',
'table' => 'items'
);
var $records = array(array(
'id' => 1,
'title' => 'Title2',
'year' => '1992'
),array(
'id' => 2,
'title' => 'Lorem ipsum dolor sit amet',
'year' => '1995'
));
}
看,在testAdd中,我并没有通过一个不应该是空的年份,但它实际上已经过去了。为什么没有调用验证
谢谢,
Tee
允许空
仅在数据包含指定字段时有效,在您的情况下为年份
。要使验证失败,您必须将'year'=>'
添加到testAdd
中的$data
数组中,或者将'required'=>true
添加到验证规则中,以强制执行数据中存在year
字段
另见
<?php
App::import('Model', 'Item');
class ItemTest extends Item {
var $name = 'ItemTest';
var $useTable = 'items';
var $useDbConfig = 'test';
}
class ItemTestCase extends CakeTestCase {
var $fixtures = array('app.item');
function startTest() {
$this->ItemTest =& ClassRegistry::init('ItemTest');
}
function testAdd() {
$data = array(
'ItemTest' => array(
'title' => 'Best article Evar!'
)
);
$result = $this->ItemTest->saveAll($data);
}
function endTest() {
}
'year' => array(
'numeric' => array(
'rule' => 'numeric',
'allowEmpty' => false,
'message' => 'Numbers only'
),
'minLength' => array(
'rule' => array('minLength', 4),
'message' => 'Year in YYYY format'
),
'maxLength' => array(
'rule' => array('maxLength', 4),
'message' => 'Year in YYYY format'
)