【问题标题】:How to mock mongoose query like findOne()?如何模拟像 findOne() 这样的猫鼬查询?
【发布时间】:2018-09-06 01:07:52
【问题描述】:

我要模拟猫鼬函数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 始终返回特定记录。

谢谢

【问题讨论】:

    标签: mongoose model find jestjs


    【解决方案1】:

    假设UserModelmongoose 模型实例,您可能可以执行以下操作:

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

    一些笑话参考:

    【讨论】:

    • 非常感谢,顺便说一句,我可以对 user.save() 使用相同的方式吗?我试过了,但失败了,请帮助我。
    • 我认为你可以使用 create 方法。像这样 UserModel.create() 而不是 userInstance.save()
    猜你喜欢
    • 2012-09-30
    • 2011-10-25
    • 1970-01-01
    • 2017-12-30
    • 2016-04-14
    • 2015-05-19
    • 2018-02-05
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多