簡體   English   中英

如何在 Jest 中為登錄頁面編寫測試用例

[英]How to write test cases in Jest for login page

以下代碼是我為了讓管理員登錄系統而編寫的。 我現在正在嘗試進行單元測試,並且必須特別為管理員測試 ValidateLogin。 我選擇開玩笑來做到這一點。

我創建了一個測試文件:

const LoginController = reqire('./LoginController')
test('login to the system', () => {
    expect(true).toBe(true);
})

而不是檢查真為真。 我想檢查用戶名和密碼是否為真。 請解釋我應該怎么做。

以下是登錄代碼:

class User {
    username;
    password;
    email;
    firstName;
    lastName;
    roleName;

    constructor(username,password,email,firstName, lastName, roleName){
        this.username = username;
        this.password = password;
        this.email = email;
        this.firstName = firstName;
        this.lastName = lastName;
        this.roleName = roleName;
    }

    getlogininfo(username, password, callback) {       
        var sql = "SELECT * FROM User Where username = '" + username + 
            "' AND password = '" + password + "'";
        var Username;
        var dataRes;

        con.query(sql, function(err, results){
            if (err){ 
                throw err;
            }

            if(results.length>0) { //result is not empty
                Username = results[0].username;  // Scope is larger than function
                dataRes = {
                    username: results[0].username,
                    firstName: results[0].firstName,
                    lastName: results[0].lastName,
                    roleName: results[0].roleName
                }
                return callback(dataRes);
            } else {
                return callback(false);
            }
        })
    }
}

exports.User = User
class LoginController {
 
    ValidateLogin(req, res) {   
        let user = new User(); 

        var dataRes;
        var username = req.body.username
        var password = req.body.password

        console.log(username + "kekw" + password); 
        
        user.getlogininfo(username, password, function(result){
            if(result) { 
                dataRes = result;
                var session;

                // Login endpoint               
                if(dataRes.roleName == "useradmin") {
                    console.log("Call User Admin Dashboard");
                    res.redirect("/UserAdmin");
                }
                else if(dataRes.roleName == "manager") {
                    console.log("Call Manager Dashboard");
                    res.redirect("/Manager");
                }
                else if(dataRes.roleName == "staff") {
                    console.log("Called Staff Dashboard");
                    res.redirect('/Staff');
                }
                else if(dataRes.roleName == "customer") {
                    console.log("Called Customer Dashboard");
                    res.redirect('/Customer');
                }
                /*
                else if(dataRes.role == "Pharmacist") {
                    console.log("Called Pharmacist home");
                    res.redirect('/PharmacistHome');
                }
                else if(dataRes.role == "Patient") {
                    console.log("Called Patient home");
                    res.redirect('/PatientHome');
                }*/                
            }
            else {
                req.flash('message', 'Wrong Username or Password!')
                res.redirect("/?error=true");
                return false;
            }
        });        
    }    
}

//module.exports = LoginController;
exports.LoginController = LoginController;

我想為 useradmin 登錄的用戶名和密碼編寫測試用例。 我該怎么做? 謝謝。

能否請您發送完整的錯誤代碼? 獲得解決方案將非常有幫助。 雖然我認為這可能是 ES6 模塊的錯誤。 檢查你的 package.json 中是否有"type": "module" 如果是這種情況,您必須使用import * from './LoginController'導入您的 LoginController

你寫錯了“require”:像這樣: const LoginController = reqire('./LoginController');

暫無
暫無

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

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