我在本地服务器上安装了php单元,但我不明白(阅读php单元帮助)如何测试我的动作创建。我的行动是这样的,我唯一要测试的是它是否保存在数据库中。
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate() {
$_class = $this->getClassName();
$model = new $_class;
if (isset($_POST)) {
$model->attributes = $_POST;
$this->armaMensajeABMGrilla($model->save(), $model);
}
$this->renderPartial('create', array(
'model' => $model,), false, true);
}
protected function armaMensajeABMGrilla($guardoOk, $modelo = null) {
if ($guardoOk == true) {
$this->respuestaJSON = array('success' => true, 'mensaje' => 'ok');
} else {
$erroresMensaje = 'Listado de Errores: <br/><ul>';
$i = 0;
if (isset($modelo->errors)) {
foreach ($modelo->errors as $error) {
$erroresMensaje .= '<li>Error(' . $i . '): ' . $error[0] . '</li>';
$i++;
}
$erroresMensaje.='</ul>';
}
$this->respuestaJSON = array('success' => false, 'mensaje' => $erroresMensaje);
}
$this->renderJSON($this->respuestaJSON);
}
测试方法怎么样?这样的事情?
public function actionCreateTest(){
$model = new Model;
$this->asserttrue($model->save());
}
答案 0 :(得分:1)
编写用于测试控制器功能的功能测试,而不是单元测试,
你在这里断言的事情
$this->assertEquals(true,$controller->actionCreate());
如果$controller->actionCreate()
的结果是值true
,则不是!
你是$this->renderPartial()
并且什么也没有返回,所以这句话永远不会成真。