reactjs - jest.fn 在调用时返回 undefined

标签 reactjs jestjs func

我正在尝试在我的测试中实现一个 fetch 模拟功能。按照教程,我试图通过使用 jest.fn() 来做到这一点:

const fetchFunction = jest.fn(() => {
    return null
})
由于某种原因,这不起作用。
如果我只是做 console.log(fetchFunction)在我的测试中,我得到:
[Function: mockConstructor] {
        _isMockFunction: true,
        getMockImplementation: [Function],
        mock: [Getter/Setter],
        mockClear: [Function],
        mockReset: [Function],
        mockRestore: [Function],
        mockReturnValueOnce: [Function],
        mockResolvedValueOnce: [Function],
        mockRejectedValueOnce: [Function],
        mockReturnValue: [Function],
        mockResolvedValue: [Function],
        mockRejectedValue: [Function],
        mockImplementationOnce: [Function],
        mockImplementation: [Function],
        mockReturnThis: [Function],
        mockName: [Function],
        getMockName: [Function]
      }
但是,如果我尝试通过 console.log(fetchFunction()) 调用它我得到 undefined ?
我正在尝试在 create-react-app 文件夹中执行此操作。我必须安装一些额外的东西吗?关于为什么会发生这种情况的任何想法?

最佳答案

这是因为 Create-React-App 有 resetMocks默认开启。要关闭它,你可以把它放在你的 package.json 中

"jest": {
  "resetMocks": false
}
他们在 4.0 版本中改变了这一点。他们确实在他们的更新日志中提到了它https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md#400-2020-10-23但我想我并不是唯一一个错过/不知道这一点的人......
有一个关于恢复该更改的未决问题:https://github.com/facebook/create-react-app/issues/9935

关于reactjs - jest.fn 在调用时返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65092376/

相关文章:

typescript - React.jsx : type is invalid when testing a React component with an svg with Jest and React Testing Library

javascript - react和express中如何一次性上传文件和json数据

reactjs - 如何在reactjs中使用Jsdoc生成文档?

javascript - 如何获取 jest/enzyme 的渲染次数?

c# - 如何通过 ConverterParameter 将 TimeSpan.FromSeconds 传递给转换器?

c# - readonly Func 与方法,性能影响/引擎盖下的东西

c# - 将具有多个参数的 F# 函数转换为 Func 类型 - MathNet.Numerics

javascript - 无法设置单个对象的属性

javascript - react 阻止关注点击

react-native - 在 Jest 上模拟 react-native-async-storage