【问题标题】:Jest, mock Mongoose model with lean()开玩笑,用lean() 模拟猫鼬模型
【发布时间】:2021-05-29 01:03:30
【问题描述】:

我正在测试一个对我想要模拟的模式进行异步调用的函数:

const someFunction = async (id) => {
  const data = await SomeModel.findById(id).lean()

所以,我想模拟 SomeModel 以保持代码的逻辑。

data 应该是这样的对象:{ _id: 'someId' }

但是我应该如何使用应用于SomeModel.findByIdlean() 方法进行模拟?

我试过了:

SomeModel.findById.mockReturnValueOnce({ _id: 'someId' })
SomeModel.findById.mockImplementationOnce(() => Promise.resolve({ _id: 'someId' }))

但它没有逻辑,因为我需要模拟的是包括lean()在内的整行 有什么提示吗?

【问题讨论】:

    标签: mongoose jestjs


    【解决方案1】:

    我解决了:

    SomeModel.findById.mockImplementationOnce(() => ({
      lean: jest.fn().mockReturnValue({ _id: 'someId' }),
    }));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      相关资源
      最近更新 更多