Yii php单元测试动作创建

时间:2014-02-15 05:12:21

标签: unit-testing yii phpunit

我在本地服务器上安装了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());
}

1 个答案:

答案 0 :(得分:1)

编写用于测试控制器功能的功能测试,而不是单元测试,

你在这里断言的事情

$this->assertEquals(true,$controller->actionCreate());

如果$controller->actionCreate()的结果是值true,则不是!

你是$this->renderPartial()并且什么也没有返回,所以这句话永远不会成真。