//first test suite
test('queries first time', async (done) => {
mockingoose(Model).toReturn({ name: 'asd' });
const doc = await Model.find({})
console.log(doc); //right value
mockingoose.resetAll();
done();
})
test('queries second time', async (done) => {
mockingoose(Model).toReturn({ name: 'asd' });
const doc = await Model.find({})
console.log(doc); //undefined
mockingoose.resetAll();
done();
})
//second test suite without mocking the data
test('queries first time', (done) => {
Model.find({}, (err, doc) => {
console.log(err, doc); //logs values
return
});
done();
})
test('queries second time', (done) => {
Model.find({}, (err, doc) => {
console.log(err, doc); //doesn't log
return
});
done();
})
所以问题是,在用笑话测试猫鼬时,仅运行第一个测试块的查询。该模拟实际上是对模型进行查询的结果,但是无论有没有模型,第二个测试块都无法正常工作。它甚至不会引发错误,只是总是返回未定义,或者像在第二个测试套件中一样,不会调用回调函数。
有什么想法吗?