【发布时间】:2021-03-01 01:56:21
【问题描述】:
我正在尝试对预验证猫鼬模型方法进行单元测试。
这是模型部分:
export const hashPassword = async function () {
console.log('test1');
return Promise.resolve();
};
userSchema.pre('validate', hashPassword);
这里是单元测试部分
it('hash password pre save hook', async () => {
const user = new User({
email: 'email@email.com',
firstName: 'firstName',
lastName: 'lastName',
userName: 'userName',
password: 'password',
});
await user.validate();
console.log('test2');
});
最后,我收到的错误消息
错误:超过 2000 毫秒的超时。对于异步测试和钩子,确保 “完成()”被调用;如果返回一个 Promise,请确保它解析。
所以方法中的console.log被触发了,但不是第二个。我将代码简化为最简单的逻辑,我仍然无法使其工作。
我检查并且我是 100% 肯定的,它来自钩子本身。不是来自mocha,不是来自hash函数,是来自mongoose hook。
PS:是的,我试过增加timeOut没有成功
【问题讨论】:
标签: node.js unit-testing mongoose mocha.js