如何模拟像findOne()这样的猫鼬查询?

时间:2018-09-04 18:02:10

标签: mongoose model find jestjs

我要模拟猫鼬功能find()。 这就是我尝试过的。

1)

jest.mock("./user.model")
UserModel.findOne.mockResolvedValue(await UserModel.findOne({email: "test@gmail.com"}))

2)

const findOne = jest.fn();
findOne.mockResolvedValue(await UserModel.findOne({email: "test@gmail.com"}))

但两者都不起作用, 什么是解决方案?我想让UserModel的findOne总是返回特定的记录。

谢谢

1 个答案:

答案 0 :(得分:1)

假设UserModelmongoose模型实例,则可以按照以下方式进行操作:

jest.spyOn(UserModel, 'findOne').mockReturnValue(Promise.resolve({ email: "test@gmail.com" }))

一些开玩笑的引用: