为什么 Jest 向我发送此超时错误?
Why Jest is sending me this timeout error?
实际上此代码不起作用,错误消息是:抛出:“测试超时超过 5000 毫秒。
如果这是一个长 运行 测试,请使用 jest.setTimeout(newTimeout) 增加超时值。"
我 1 周以来一直受阻,有人可以帮助我吗?当我在 postman 上调用路由 /login 时,它的工作完美
const session = require('express-session')
const res = require('express/lib/response')
const request = require('supertest')
const app = require("../routes/routes")
describe('test POST', () => {
it('login', async () => {
let result = await request(app)
.post('/login')
.send({
loginID:"1705",
loginPwd:"17051999"
})
})
})
我尝试增加超时时间,但也不起作用
这是post路线
app.post('/login', (req, res) => {
console.log(req.body)
let id = req.body.loginID
let mdp = req.body.loginPwd
if (id != '' && id != undefined) {
if (mdp != '' && mdp != undefined) {
let Login = require('../models/M_Login')
Login.testLogin(id,mdp, (result, id) => {
console.log(result)
switch (result.resultCode) {
case 0:
req.session.infoUser = result
req.session.infoUser.loginNo = id
req.session.success = 'Connexion réussie'
res.redirect('/accueil')
break
case 2001:
req.session.error = 'Identifiant inconnu'
res.redirect('/')
break
case 2002:
req.session.error = 'Mot de passe incorrect'
res.redirect('/')
break
case 1003:
req.session.error = 'Compte bloqué veuillez contacter l\'administrateur'
res.redirect('/')
break
}
})
} else {
req.session.error = 'Vous devez renseigner votre mot de passe'
res.redirect('/')
}
} else {
req.session.error = 'Vous devez renseigner votre identifiant'
res.redirect('/')
}
})
这里是调用 API
的函数
const axios = require('axios').default;
const { baseUrlServer } = require('../server')
class M_Login {
static testLogin(id, mdp, cb) {
axios.post(baseUrlServer + '/login/loginPwd', {
"loginNo": id
, "loginPwd": mdp
, "domainNo": 0
})
.then(function (res) {
cb(res.data, id)
})
.catch(function (error) {
cb(error)
})
}
}
module.exports = M_Login
如果你想测试你的 API 调用,我建议你模拟你的 API 响应
编辑:我发现了问题,它在 routes.js
的 req.session 上
我认为那个笑话不知道快速会话,这就是为什么测试永远不会完成的原因
实际上此代码不起作用,错误消息是:抛出:“测试超时超过 5000 毫秒。 如果这是一个长 运行 测试,请使用 jest.setTimeout(newTimeout) 增加超时值。"
我 1 周以来一直受阻,有人可以帮助我吗?当我在 postman 上调用路由 /login 时,它的工作完美
const session = require('express-session')
const res = require('express/lib/response')
const request = require('supertest')
const app = require("../routes/routes")
describe('test POST', () => {
it('login', async () => {
let result = await request(app)
.post('/login')
.send({
loginID:"1705",
loginPwd:"17051999"
})
})
})
我尝试增加超时时间,但也不起作用
这是post路线
app.post('/login', (req, res) => {
console.log(req.body)
let id = req.body.loginID
let mdp = req.body.loginPwd
if (id != '' && id != undefined) {
if (mdp != '' && mdp != undefined) {
let Login = require('../models/M_Login')
Login.testLogin(id,mdp, (result, id) => {
console.log(result)
switch (result.resultCode) {
case 0:
req.session.infoUser = result
req.session.infoUser.loginNo = id
req.session.success = 'Connexion réussie'
res.redirect('/accueil')
break
case 2001:
req.session.error = 'Identifiant inconnu'
res.redirect('/')
break
case 2002:
req.session.error = 'Mot de passe incorrect'
res.redirect('/')
break
case 1003:
req.session.error = 'Compte bloqué veuillez contacter l\'administrateur'
res.redirect('/')
break
}
})
} else {
req.session.error = 'Vous devez renseigner votre mot de passe'
res.redirect('/')
}
} else {
req.session.error = 'Vous devez renseigner votre identifiant'
res.redirect('/')
}
})
这里是调用 API
的函数
const axios = require('axios').default;
const { baseUrlServer } = require('../server')
class M_Login {
static testLogin(id, mdp, cb) {
axios.post(baseUrlServer + '/login/loginPwd', {
"loginNo": id
, "loginPwd": mdp
, "domainNo": 0
})
.then(function (res) {
cb(res.data, id)
})
.catch(function (error) {
cb(error)
})
}
}
module.exports = M_Login
如果你想测试你的 API 调用,我建议你模拟你的 API 响应
编辑:我发现了问题,它在 routes.js
的 req.session 上我认为那个笑话不知道快速会话,这就是为什么测试永远不会完成的原因