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');
}

ヘッダーが2回送信され、ログイン後にフラッシュされたため、bootstrap.phpにob_start()を追加しました。ログインは有効であるにもかかわらず計算されないため、アクセスproduction / request/createがログインページに移動するときのテストは引き続き行われます。 。

編集: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 に答える