0
我正在嘗試爲文章控制器測試非常簡單的添加動作。以下是我的代碼。我不明白爲什麼這不起作用。測試cakephp 2.1控制器的動作,如添加和編輯
$this->Articles->Article->hasAny
應該爲我剛剛調用的admin_add操作和我剛剛添加的測試記錄返回true。然而它返回false;
class ArticlesControllerTestCase extends ControllerTestCase {
/**
* Test Admin Add
*
* @return void
*/
public function testAdminAdd() {
#define sample passing data
$sampleDataPass = array(
'Article'=>array(
'title'=>'---Test Article Add---',
'body'=>'---Test Article Add Body---',
'status_id'=>1,
'category_id'=>1,
)
);
#test passing data
$this->Articles->request->data = $sampleDataPass;
$this->testAction('admin/articles/add', array('data'=>$sampleDataPass));
$this->assertEquals($this->Articles->Article->hasAny(array('Article.title'=>'---Test Article Add---')), true); #fails here
}
}
class MastersController extends AppController {
/**
* Admin Add
* Default admin add method for all controllers
* Adds a record to the models database table
* Not calling add action becase of __setRootUserId action
* @return void
*/
protected function _admin_add() {
if (!empty($this->request->data)) {
#save data
$this->{$this->modelClass}->create();
if ($this->{$this->modelClass}->save($this->request->data)) {
return $this->Redirect->flashSuccess($this->modelClass.' saved.', isset($this->redirectSuccessUrl) ? $this->redirectSuccessUrl : array('action' => 'view', $this->{$this->modelClass}->id));
} else {
return $this->Redirect->flashWarning($this->modelClass.' could not be saved.', isset($this->redirectWarningUrl) ? $this->redirectWarningUrl : null);
}
}
$this->_lists();
}
}
class ArticlesController extends MastersController {
/**
* Admin Add
* @see controllers/MastersController::_admin_add()
* @return void
*/
public function admin_add(){
parent::_admin_add();
}
}