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

Web*_*per 1 model find mongoose jestjs

我要模拟 mongoooose 函数find()。这是我尝试过的。

1)

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

2)

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

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

谢谢

Enr*_*aez 6

假设这UserModel是一个猫鼬模型实例,您可能可以执行以下操作:

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

一些笑话参考: