[英]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.