测试运行程序(笑话)无法导入expo模块

时间:2018-07-30 19:12:02

标签: react-native jestjs expo

我正在为React Native应用编写一些组件测试。我将expo的{​​{1}}用于我的组件之一。在我的BarCodeScanner测试中,我一行写着jest。仅此行(没有在我的测试代码中进一步使用它的任何行)会导致以下错误:

  

Expo SDK需要运行Expo。似乎是本地的Expo模块   不可用,并且此代码未在Expo上运行。访问   https://docs.expo.io以了解有关开发Expo项目的更多信息。

有人对如何将import { BarCodeScanner } from 'expo';导入测试文件有任何想法吗?

1 个答案:

答案 0 :(得分:5)

我做了一些挖掘工作,看来这是Expo和Jest的常见问题。当前有一些与Jest测试有关的问题:

https://github.com/expo/expo/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+jest

一种解决方案激发了我的兴趣:

https://github.com/expo/expo/issues/1705

如果您创建自己的Jest安装文件并在其中“ expo()” expo组件并将expo和expo-jest降级到v26,则会显示该文件。上面的链接中的示例:

package.json:

...
"jest": {
    "preset": "jest-expo",
    "setupTestFrameworkScriptFile": "./setupJest"
},
...

setupJest.js:

require('stacktrace-parser');

希望这对您有所帮助。让我知道您的生活状况,或者您有任何疑问,如果可能的话,我会再介绍一点:)