摩卡单元测试猫鼬模型

时间:2018-12-03 12:04:43

标签: node.js unit-testing mongoose mocha chai

我正在尝试使用mocha和chai对我的猫鼬模型进行简单测试

// Mock user
  var testUser = new User({
    companyID: "1",
    username: "mockUser",
    password: "password",
    email: "a@valid.email",
  });

// Create new user
it('Should add a new user with a hashed password to DB' , (done) => {
  User.addUser(testUser, (err, user) => {
    if(err) console.log(err);
    else {
      assert.typeOf(user, 'Object');
      assert.equal(user.username, "mockUser");
      expect(user.password).to.not.equal("password");
    }
    done();
  });
});

错误:超时超过2000毫秒。对于异步测试和挂钩,请确保调用了“ done()”;如果返回一个Promise,请确保它可以解决

我认为摩卡咖啡已更改,因为它已经与以前的项目一起使用了。 我在这里想念什么?

模型方法:

module.exports.addUser = function(newUser, callback) {
  bcrypt.genSalt(10, (err, salt) => {
    bcrypt.hash(newUser.password, salt, (err, hash) => {
      if (err) throw err;
      newUser.password = hash;
      newUser.save(callback);
    });
  });
}

2 个答案:

答案 0 :(得分:0)

有时,当单元测试暗示要在数据库中创建对象时,它花费的时间超过默认超时的2秒。尝试启动Mocha增加超时时间,看看它是否有效。

mocha --timeout 10000

答案 1 :(得分:0)

忘记要求应用程序本身。

const app = require('../app');