Mongoose Jest,带lean()的模拟猫鼬模型

Mongoose Jest,带lean()的模拟猫鼬模型,mongoose,jestjs,Mongoose,Jestjs,我正在测试一个函数,该函数对我要模拟的模式进行异步调用: const someFunction = async (id) => { const data = await SomeModel.findById(id).lean() 因此,我想模拟SomeModel,以保持代码的逻辑 数据应该是如下对象:{u id:'someId'} 但是我应该如何使用应用于SomeModel.findById的lean()方法进行模拟呢 我试过这个: SomeModel.findById.mockRe

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

const someFunction = async (id) => {
  const data = await SomeModel.findById(id).lean()
因此,我想模拟
SomeModel
,以保持代码的逻辑

数据
应该是如下对象:
{u id:'someId'}

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

我试过这个:

SomeModel.findById.mockReturnValueOnce({ _id: 'someId' })
SomeModel.findById.mockImplementationOnce(() => Promise.resolve({ _id: 'someId' }))
但它没有逻辑,因为我需要模拟的是整条线,包括
lean()
有什么提示吗?

我用以下方法解决了这个问题:

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