記事コントローラーの非常に単純な追加アクションをテストしようとしています。以下は私のコードです。これが機能しない理由がわかりません。
$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();
}
}