javascript - 开 Jest - 模拟函数返回的不是函数

标签 javascript unit-testing jestjs

我正在尝试使用 jest 模拟一个函数,但我在调用 mock 的代码上遇到错误 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 已打印,但我收到了提到的错误。我很确定问题出在我编写 mock 的方式上。

关于如何模拟 got() 有什么帮助吗?

提前致谢。

最佳答案

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

你只需要将你的 mock 包装在一个返回它的工厂函数中:

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

关于javascript - 开 Jest - 模拟函数返回的不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52760441/

相关文章:

c++ - wxWidgets:如何在不使用宏且不进入主应用程序循环的情况下初始化 wxApp?

python - Python unittest 可以自动重新尝试失败的测试用例/套件吗?

javascript - 如何 Jest 从覆盖报告生成中删除快照的考虑

javascript - 如何测试 vue.js v-select 组件的值

reactjs - 如何使用 Jest 在 React Native 中正确测试我的 Realm.io 实现?

javascript d3 刻度格式

javascript - Canvas 中圆弧的不同 fillStyle 颜色

javascript - 球被困在 Racket 内

javascript - 删除一个 li 元素不起作用

javascript - 以编程方式检索页面上的 javascript 错误计数