如何模拟模拟find()的toArray()?

use*_*695 2 javascript node-mongodb-native jestjs

对于这个方法

内容.js

const content = await Content.findOne({ _id: articleId })
Run Code Online (Sandbox Code Playgroud)

我像这样进行模拟:

内容.test.js

Content.findOne = jest.fn(() => Promise.resolve({ some: 'content' }))
Run Code Online (Sandbox Code Playgroud)

但是我如何模拟find.toArray()mongo 本机驱动程序使用的方法呢?

const posts = await Content.find({ category: 'foo' }).toArray()
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 5

既然你在嘲笑 的属性Content,我想说就继续这样做吧。返回一个具有可调用函数属性的Content.find对象:toArray

Content.find = jest.fn(() => ({ toArray: _ => [
  { some: 'content' },
  { some: 'content' }
] }));
Run Code Online (Sandbox Code Playgroud)