开玩笑-模拟功能返回的不是函数

时间:2018-10-11 12:46:40

标签: javascript unit-testing jestjs

我正在尝试使用玩笑来模拟函数,但是在模拟被称为TypeError: got is not a function的代码中出现错误。

在我的实现中,我喜欢:

const got = require('got')
got('...', {})

我将模拟函数写为:

jest.mock('got', (url, options) => {
  console.log('on my way', url)
  return 1
})

打印了消息on my way,但出现了我提到的错误。我很确定问题出在我编写模拟的方式上。

是否有关于模拟got()的帮助?

谢谢。

1 个答案:

答案 0 :(得分:1)

jest.mock的第二个参数应该是返回模拟的模块工厂函数。

您只需要将模拟包装在返回它的工厂函数中即可:

jest.mock('got', () => {
  return (url, options) => {
    console.log('on my way', url)
    return 1
  }
});