CakePHP控制器中的PHPUnit数据提供程序
我正在尝试使用dataProvider编写一个单元测试来测试控制器方法 但是,$this->contents始终返回null。dataProvider在CakePHP的控制器测试用例中工作吗CakePHP控制器中的PHPUnit数据提供程序,phpunit,Phpunit,我正在尝试使用dataProvider编写一个单元测试来测试控制器方法 但是,$this->contents始终返回null。dataProvider在CakePHP的控制器测试用例中工作吗 public function initValidateDataProvider() { $data['Event']['event_type'] = 1; $data['Event']['event_id'] = 1; $data['Event']['year'
public function initValidateDataProvider() {
$data['Event']['event_type'] = 1;
$data['Event']['event_id'] = 1;
$data['Event']['year'] = date('Y');
$data['Event']['name'] = 'test';
$param[0] = $data;
$provider[0] = $param;
return $provider;
}
/**
* @dataProvider initValidateDataProvider
*
*/
public function testInitValidationAll($data) {
$this->testAction(
'/sb_organizers/events/init',array(
'return' => 'contents',
'data' => $data,
'method' => 'POST'
)
);
debug($this->contents);
}
调试$this->contents;始终返回null
但如果我在没有数据提供程序的情况下运行它:
public function testInitValidateAll() {
$data['Event']['event_type'] = '';
$data['Event']['etag_id'] = 0;
$data['Event']['year'] = '';
$data['Event']['name'] = '';
$this->testAction(
'/sb_organizers/events/init',array(
'return' => 'contents',
'data'=>$data
)
);
debug($this->contents);
}
它很好用。dataProvider在CakePHP的控制器测试用例中工作吗?我怀疑是$this->testAction不适用于dataProvider。您是否通过执行var_转储来检查$data数组在这两种情况下是否相同?@gontrollez是的。它们是一样的。如果数据格式不同,PHPUnit将抛出异常。如果数据内容不同,$this->contents仍将返回一些内容。