yii php单元测试Yii :: app-> user-> id错误

时间:2014-02-15 06:28:21

标签: yii phpunit

我正在测试一个保存模型的类。这个模型有一个行为,它用这个方法

保存我要插入的记录的用户
 public function beforeSave($event) {                       
        if (($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioCreacion)!==null)) 
            $this->getOwner()->{$this->campoUsuarioCreacion} = Yii::app()->user->id;

        if ($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioModificacion)!==null) 
            $this->getOwner()->{$this->campoUsuarioModificacion} = Yii::app()->user->id;

       return parent::beforeSave();
    }

但是当我测试时,Yii :: app() - > user-> id存在问题。我认为问题在于没有用户登录。那么,如何在不使用带密码的用户ID复制类的情况下解决问题呢?有没有办法设置应用用户ID?

1 个答案:

答案 0 :(得分:0)

如果没有提及用户是否已登录或Yii :: app() - > user-> id已定义的问题,您需要将其添加到您的函数底部:

return parent::beforeSave();

例如:

public function beforeSave($event) {                       
    if (($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioCreacion)!==null)) 
        $this->getOwner()->{$this->campoUsuarioCreacion} = Yii::app()->user->id;

    if ($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioModificacion)!==null) 
        $this->getOwner()->{$this->campoUsuarioModificacion} = Yii::app()->user->id;

    return parent::beforeSave();
}