簡體   English   中英

Cakephp測試登錄

[英]Cakephp testing login

我想測試登錄功能,如果它正常工作,只允許有效和活躍的用戶。

我的用戶夾具包含:

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

}

登錄表單有3個輸入: usernamepasswordremember

我設置了$this->Auth->autoRedirect = false; UsersController::beforeFilter ,我正在做一些cookie設置

當我debug($this->data); UsersController::login()它在測試和正常記錄時顯示完全相同的數據。 但是在測試登錄失敗時,我得到$this->Auth->loginError消息而不是登錄。

如何正確測試登錄操作?

如果你使用蛋糕Auth組件,不要破解它你不需要......

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

如果你真的想,看看專業人士是怎么做的:)

您是否也設置了自定義功能,如CakePHP手冊中所述

通常,AuthComponent會嘗試通過將您輸入的登錄憑據與用戶模型中存儲的憑據進行比較來驗證您輸入的登錄憑據是否准確。 但是,有時您可能希望在確定正確的憑據時執行一些額外的工作。 通過將此變量設置為多個不同值中的一個,您可以執行不同的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM