如何模拟模拟 find() 的 toArray()?
How to mock toArray() of mocked find()?
对于这个方法
content.js
const content = await Content.findOne({ _id: articleId })
我像这样模拟:
content.test.js
Content.findOne = jest.fn(() => Promise.resolve({ some: 'content' }))
但是我如何模拟 mongo 本机驱动程序使用的 find.toArray()
方法?
const posts = await Content.find({ category: 'foo' }).toArray()
既然你在模拟 Content
的属性,我会说继续这样做。使 Content.find
return 具有 toArray
属性 的对象是可调用函数:
Content.find = jest.fn(() => ({ toArray: _ => [
{ some: 'content' },
{ some: 'content' }
] }));
您不应该调用 mongo 的本机驱动程序,因为您没有测试 mongo 驱动程序(对吗?)。
你应该做的是模拟 mongo 的本地驱动程序。
对于这个方法
content.js
const content = await Content.findOne({ _id: articleId })
我像这样模拟:
content.test.js
Content.findOne = jest.fn(() => Promise.resolve({ some: 'content' }))
但是我如何模拟 mongo 本机驱动程序使用的 find.toArray()
方法?
const posts = await Content.find({ category: 'foo' }).toArray()
既然你在模拟 Content
的属性,我会说继续这样做。使 Content.find
return 具有 toArray
属性 的对象是可调用函数:
Content.find = jest.fn(() => ({ toArray: _ => [
{ some: 'content' },
{ some: 'content' }
] }));
您不应该调用 mongo 的本机驱动程序,因为您没有测试 mongo 驱动程序(对吗?)。 你应该做的是模拟 mongo 的本地驱动程序。