6

ログイン機能が適切に機能し、有効でアクティブなユーザーのみを許可するかどうかをテストしたいと思います。

私のユーザーフィクスチャには以下が含まれます:

array(
        'password' => '*emptyPasswordHash*', // empty password
        'username' => 'Lorem',
        'balance' => 0,
        'currency' => 'USD',
        'id' => 1,
        'user_group_id' => 3, //Customer
        'active' => 1,
        'hash' => 'LoremHash'
    ),

私のテスト関数は次のようになります。

function testLogin() {
            //test valid login
            $result = $this->testAction('/users/login', array(
                'data' => array(
                    'User' => array(
                        'username' => 'Lorem',
                        'pass' => '',
                        'remember' => true
                )),
                'method' => 'post',
                'return' => 'view'
            ));

            debug($result);

}

ログイン フォームにはusername、 、passwordおよびの 3 つの入力があります。remember

私はに設定$this->Auth->autoRedirect = false;し、UsersController::beforeFilterいくつかのクッキー設定を行っています

私がそのdebug($this->data);中にUsersController::login()いるとき、テスト時と通常のロギング時にまったく同じデータが表示されます。しかし、ログインのテスト中に失敗し、ログイン$this->Auth->loginErrorの代わりにメッセージが表示されます。

ログインアクションを適切にテストするにはどうすればよいですか?

4

2 に答える 2

1

ケーキ認証コンポーネントを使用し、それをハックしない場合は、必要はありません...

https://github.com/cakephp/cakephp/blob/master/cake/tests/cases/libs/controller/components/auth.test.php#L545

そして、あなたが本当にしたいのなら、プロがそれをどのように行うかを見てください:)

于 2011-04-05T12:55:18.543 に答える
0

The CakePHP manualで説明されているように、カスタム関数も設定しましたか?

通常、AuthComponent は、ユーザー モデルに保存されているものと比較して、入力したログイン資格情報が正確であることを確認しようとします。ただし、適切な資格情報を決定するために追加の作業を行う必要がある場合があります。この変数をいくつかの異なる値のいずれかに設定することで、さまざまなことを行うことができます。

于 2011-04-03T17:51:26.177 に答える