javascript - 开玩笑 - 模拟函数返回不是一个函数
问题描述
我正在尝试使用 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
已打印,但我收到了提到的错误。我很确定问题出在我编写模拟的方式上。
关于如何模拟的任何帮助got()
?
预先感谢。
解决方案
第二个参数jest.mock
应该是返回模拟的模块工厂函数。
您只需要将模拟包装在返回它的工厂函数中:
jest.mock('got', () => {
return (url, options) => {
console.log('on my way', url)
return 1
}
});
推荐阅读
- networking - 将 Apache Consumer 连接到 Kafka 集群上的单个节点
- javascript - laterJS + useEffect 多次发出函数调用
- numpy - 无法使用 dask 存储数组
- javascript - 反应:在悬停时呈现“请填写此字段”警告
- .net - 有哪些选项可以在 .Net 中使用具有负面后视功能的可变长度捕获组?
- c# - 等待 C# 中 lambda 函数的结果
- sql - 使用 spark 或 scala 删除具有十亿条记录的表中的记录
- passport.js - 使用passportJS从instagram检索accessToken失败
- c# - 使用 Active Directory 对用户进行身份验证,而不在 catch 块内放置不正确的用户名或密码错误
- css - 如何通过css正确创建一个简单的圆形进度条