在玩笑中测试猫鼬查询-仅第一个测试块执行查询

时间:2019-11-19 15:50:06

标签: javascript mongoose jestjs

//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();
})

所以问题是,在用笑话测试猫鼬时,仅运行第一个测试块的查询。该模拟实际上是对模型进行查询的结果,但是无论有没有模型,第二个测试块都无法正常工作。它甚至不会引发错误,只是总是返回未定义,或者像在第二个测试套件中一样,不会调用回调函数。

有什么想法吗?

0 个答案:

没有答案