【问题标题】:FileReader, File and TextDecoder in Jest Test not defined未定义 Jest 测试中的 FileReader、File 和 TextDecoder
【发布时间】:2019-10-27 07:02:29
【问题描述】:

在我只用 Jasmine 进行测试之前,我现在尝试 Jest,但面临的问题是 FileReader, File and TextDecoder 之类的东西在我的测试中没有定义。 如何使用这些类及其实际功能来测试使用它们的类?

【问题讨论】:

  • 将它们导入您的测试?或者使用setupFiles 导入所有测试套件全局所需的所有模块。

标签: javascript typescript unit-testing jestjs


【解决方案1】:

至少对于TextDecoder,我在@josephting 的评论的帮助下找到了解决办法。这真的很 hacky,因为它要求您安装一个也已弃用且不再维护的开发依赖项 text-encoding

首先你需要在你的jest.config.js中定义setupFiles

[...]
setupFiles: ['./tests/setupEnv.js'],
[...]

您还需要在您的setupEnv.js 中全局要求提到的包:

TextDecoder = require('text-encoding').TextDecoder;

【讨论】:

  • 以下对我有用,来自 Node.js 包含的 util 包:const { TextDecoder } = require('util'); global.TextDecoder = TextDecoder;
  • 谢谢@zzzachzzz - 请考虑将其发布为答案 - 它对我有用:)
  • @zzzachzzz 解决方案确实有效,包 text-encoding 在当前版本中不包含 Class TextDecoder
猜你喜欢
  • 1970-01-01
  • 2021-04-24
  • 2022-06-30
  • 1970-01-01
  • 2020-07-13
  • 1970-01-01
  • 2017-07-20
  • 2018-02-26
  • 1970-01-01
相关资源
最近更新 更多