首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在模拟鹅中,我如何在不返回“未定义”的情况下模拟调用“查找”?

在模拟鹅中,我如何在不返回“未定义”的情况下模拟调用“查找”?
EN

Stack Overflow用户
提问于 2021-06-17 18:49:32
回答 1查看 459关注 0票数 1

我用的是猫鼬2.13.2和猫鼬5.12.2,还有打字稿和笑话。在我的测试中,我试图模拟对我的模式的find方法的调用,所以我尝试了下面的方法

代码语言:javascript
复制
import mockingoose from 'mockingoose';
...

    beforeEach(async () => {
      jest.resetAllMocks();
      jest.clearAllMocks();

      mockingoose(File).reset();
      console.log("mock response:" + JSON.stringify(fileMockResponse));
      mockingoose(File).toReturn(fileMockResponse, 'find');
      const filePostList = await File.find({
        _id: { $in: ['test'] },
      });
      console.log("mocking file post list:" + JSON.stringify(filePostList));

但是,当测试执行时,将记录以下内容:

代码语言:javascript
复制
mock response:[{"data:" ... "}]

  at Suite.<anonymous> (routes/file.test.ts:237:15)

console.log
mocking file post list:undefined

undefined告诉我,我试图模拟对find调用的响应失败。

我的模型/模式如下所示:

代码语言:javascript
复制
export interface IFile extends Document {
  author: string;
   ...
}

const FileSchema: Schema = new Schema(
  {
    author: { type: String, required: false },

    ...
  }

export default mongoose.model<IFile>('File', FileSchema);
EN

回答 1

Stack Overflow用户

发布于 2022-04-13 21:05:11

您试过在架构之外实例化模型吗?只导出模式,然后在导入模式的外部(在测试用例中)实例化模型。

当我遇到类似的问题时,我就是这样做的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68025008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档