Javascript Jest测试未使用react导航正常运行

Javascript Jest测试未使用react导航正常运行,javascript,reactjs,react-native,jestjs,react-navigation,Javascript,Reactjs,React Native,Jestjs,React Navigation,我正在使用react native 0.59,我想为我的应用程序编写第一个测试。因此,在读取react文档时,我只需要运行以下命令yart test,该命令执行以下文件: import 'react-native'; import React from 'react'; import App from '../App'; // Note: test renderer must be required after react-native. import renderer from 'react

我正在使用react native 0.59,我想为我的应用程序编写第一个测试。因此,在读取react文档时,我只需要运行以下命令
yart test
,该命令执行以下文件:

import 'react-native';
import React from 'react';
import App from '../App';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

it('renders correctly', () => {
  renderer.create(<App />);
});
这是我的
app navigator.js
文件的一部分:

const PetStack = createStackNavigator({
  UpdatePet: { screen: UpdatePet },
}, {
  mode: 'card',
  defaultNavigationOptions: {
    headerStyle: { backgroundColor: 'transparent' }
  }
});

const MainStack = createBottomTabNavigator({
  Home: { screen: Home },
  Pets: { screen: Pets },
  Notifications: { screen: UserNotifications },
  UpdateUser: { screen: UpdateUser },
});
这些是失败的路线。这很奇怪,因为当我
console.log
createStackNavigator时,它会记录一个模拟函数,但当我使用
createBottomTabNavigator
时,它会记录
未定义的

这是我的jest配置:

"jest": {
  "preset": "react-native",
  "verbose": true,
  "transform": {
    "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
  },
  "globals": {
    "NODE_ENV": "test"
  },
  "moduleFileExtensions": [
    "js"
  ],
  "moduleDirectories": [
    "src",
    "node_modules"
  ],
  "transformIgnorePatterns": [
    "/node_modules/(?!native-base|react-native-localize|react-navigation|react-navigation-redux-helpers)/"
  ],
  "setupFiles": [
    "./jest-setup.js"
  ]
}
“开玩笑”:{
“预设”:“反应本机”,
“详细”:正确,
“转变”:{
“^.+\.js$”:“/node\u modules/react native/jest/preprocessor.js”
},
“全球”:{
“节点环境”:“测试”
},
“moduleFileExtensions”:[
“js”
],
“模块目录”:[
“src”,
“节点_模块”
],
“transformIgnorePatterns”:[
“/node_modules/(?!native base | react native localize | react navigation | react navigation redux helpers)/”
],
“设置文件”:[
“/jest setup.js”
]
}

我阅读了一些相关问题,刚刚发现。他们建议在
node\u modules/react native/jest/preprocessor.js
中将键
inlineRequires
设置为
false
,但这对我不起作用

在项目的根目录下创建一个文件
jest.config.js

// jest.config.js
const {defaults} = require('jest-config');
module.exports = {
  moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts', 'tsx'],
};

有关更多详细信息,请参见

我也有同样的问题,无法找到解决方法。如果你找到了解决方案,请更新你的帖子。我还没有找到任何更新,但阅读后似乎没有办法,你需要模拟整个导航过程@YanivShnaider@GermanAlzate我也面临同样的问题。有解决办法吗?
// jest.config.js
const {defaults} = require('jest-config');
module.exports = {
  moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts', 'tsx'],
};