javascript - 引用错误 : You are trying to `import` a file after the Jest environment has been torn down

标签 javascript reactjs react-native jestjs enzyme

我有一个组件使用来自 React Native 的 Animated 组件。我开始编写一个测试用例来模拟组件的 onPress,它调用一个函数,其中包含 Animated.timingsetState

运行 jest 工作正常,但测试永远不会停止运行,而且我之前编写的一个不相关的测试用例现在似乎从未通过(之前通过)。

运行 jest --watch,我得到这个错误:

ReferenceError: You are trying to `import` a file after the Jest environment has been torn down.

      at Function.bezier (node_modules/react-native/Libraries/Animated/src/Easing.js:113:21)
      at ease (node_modules/react-native/Libraries/Animated/src/Easing.js:34:24)
      at TimingAnimation._easing (node_modules/react-native/Libraries/Animated/src/Easing.js:133:18)
      at TimingAnimation.onUpdate (node_modules/react-native/Libraries/Animated/src/animations/TimingAnimation.js:107:45)

 RUNS  src/__tests__/SlideDownMenu.test.js

/home/nrion/Desktop/mobile-ui/PriceInsight_app/node_modules/react-native/Libraries/Animated/src/Easing.js:114
      return _bezier(x1, y1, x2, y2);
             ^
TypeError: _bezier is not a function
    at Function.bezier (/home/nrion/Desktop/mobile-ui/PriceInsight_app/node_modules/react-native/Libraries/Animated/src/Easing.js:224:12)
    at ease (/home/nrion/Desktop/mobile-ui/PriceInsight_app/node_modules/react-native/Libraries/Animated/src/Easing.js:94:21)
    at TimingAnimation._easing (/home/nrion/Desktop/mobile-ui/PriceInsight_app/node_modules/react-native/Libraries/Animated/src/Easing.js:255:16)
    at TimingAnimation.onUpdate (/home/nrion/Desktop/mobile-ui/PriceInsight_app/node_modules/react-native/Libraries/Animated/src/animations/TimingAnimation.js:138:14)
    at ontimeout (timers.js:386:11)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

链接到回复

https://repl.it/repls/PartialGrimyMetadata

环境:

  • 操作系统:Linux 4.14
  • 节点:6.14.2
  • yarn :1.7.0
  • npm:3.10.10
  • 守望者:未找到
  • Xcode:不适用
  • Android Studio:未找到

最佳答案

好的,找到解决方案。

应该使用jest.useFakeTimers()

注意:将上面的代码放在测试文件中的 import 部分之后。

关于javascript - 引用错误 : You are trying to `import` a file after the Jest environment has been torn down,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50793885/

相关文章:

javascript - 在 Node 中重新构建 JSON 树

javascript - 每页随机多张图片,不重复

javascript - 为什么 redux thunk 返回 Promise?

javascript - 如何用 reactjs 修复 "Expected to return a value in arrow function"?

javascript - 使用自定义按钮 react native FlatList,如何在单击时更改颜色?

javascript - 尝试使用 Javascript try/catch 访问父窗口对象时,Safari 未捕获异常

javascript - 使用 HTML5 本地存储

javascript - 如何用 Electron 打开 React 的屏幕?

ios - 如何使用 TestFlight 测试 Firebase 动态链接(未发布的 ios 应用)

css - 在 React Native 中将图像置于 View 之上