gpt4 book ai didi

node.js - Jasmine 测试用例不会从 mongo 保存返回

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:34 24 4
gpt4 key购买 nike

我正在使用https://github.com/mhevery/jasmine-node测试我的nodejs服务器路由。我的 Mongoose 模型有一个工作预功能,如下所示

userSchema.pre('save', function(next) {
var user = this;
if (!user.isModified('password')) return next();
bcrypt.genSalt(10, function(err, salt) {
if (err) return next(err);

logger.info('Hashing password!!!');

bcrypt.hash(user.password, salt, null, function(err, hash) {
if (err) return next(err);
user.password = hash;
next();
});
});
});

现在我需要在 jasmine 中编写一个测试用例,创建一个 userSchema 对象并将其保存到 mongodb 以便在我的测试用例中进一步使用它。

var User = require("../../../../models/User");

it("{postLogin - invalid}", function(done) {
var user = new User({email: "test@test.com", password: "a"});

user.save(function(err) {
if (err){
console.log(err);
return next(err);
}
console.log('user saved to db: ' +user.email);
request.post(invalidLoginParams, function(error, response, body) {
expect(response.statusCode).toBe(400);
done();
});
});
},15000);

我使用 jasmine-node 运行上述测试用例,并得到日志'散列密码!!!',这意味着它正在调用此函数。但此后它再也不会返回到我的测试用例中。它应该打印日志'用户保存到数据库:'但它永远不会从 .pre('save') 函数返回。知道我在哪里缺少什么吗?在谷歌上找不到任何答案。希望能在这里得到它!谢谢

最佳答案

请确保正确调用回调“done()”。

关于node.js - Jasmine 测试用例不会从 mongo 保存返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31700215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com