2

我正在尝试使用硒在 YII 上对经过身份验证的用户进行功能测试。我写了以下

protected function _login(){

    $id=new UserIdentity('admin','admin');
    $id->authenticate();
    if($id->errorCode===UserIdentity::ERROR_NONE)
    {
        Yii::app()->user->login($id);
        return true;
    }
    return false;
}
public function testSpot(){
    $this->assertTrue($this->_login());
    ob_end_flush();
    $this->open('production/request/create');
}

我在 bootstrap.php 上添加了一个 ob_start() ,因为标头被发送了两次并在登录后刷新它。访问生产/请求/创建时的测试仍然进入登录页面,因为即使登录是有效的,也不会计算登录.

编辑:如果您在 phpunit 上使用 --stderr 选项,则不需要 ob_end_flush 和 ob_start 。

4

1 回答 1

2

这不会起作用,因为您只是针对从命令行运行的会话进行身份验证。您需要对 Web 会话进行身份验证。

看到这个评论:

http://www.yiiframework.com/doc/guide/1.1/en/test.functional#c10015

于 2012-10-11T07:29:52.610 回答