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' }),
}));