我正在尝试使用 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/