我正在为React Native应用编写一些组件测试。我将expo
的{{1}}用于我的组件之一。在我的BarCodeScanner
测试中,我一行写着jest
。仅此行(没有在我的测试代码中进一步使用它的任何行)会导致以下错误:
Expo SDK需要运行Expo。似乎是本地的Expo模块 不可用,并且此代码未在Expo上运行。访问 https://docs.expo.io以了解有关开发Expo项目的更多信息。
有人对如何将import { BarCodeScanner } from 'expo';
导入测试文件有任何想法吗?
答案 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');
希望这对您有所帮助。让我知道您的生活状况,或者您有任何疑问,如果可能的话,我会再介绍一点:)