首页 文章

茉莉花测试用例不会从mongo保存返回

提问于
浏览
1

我正在使用https://github.com/mhevery/jasmine-node来测试我的nodejs服务器路由 . 我的猫鼬模型具有如下工作预功能

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运行上面的测试用例,我得到了日志 'Hashing password!!!' ,这意味着它正在调用这个函数 . 但在此之后它永远不会回到我的测试用例 . 它应该打印日志 'user saved to db: ' 但它永远不会从.pre('save')函数返回 . 任何想法我在哪里和我缺少什么 . 在谷歌上找不到任何答案 . 希望能在这里得到它!谢谢

1 回答

  • 2

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

相关问题