gpt4 book ai didi

javascript - TypeError : (0 , _native.createNavigatorFactory) 不是函数

转载 作者:行者123 更新时间:2023-12-05 04:51:24 30 4
gpt4 key购买 nike

尝试在我的 React Native 应用程序上执行 npm test,使用 Jest 进行单元测试工作正常。但是,对于 react-test-renderer,它会提示以下问题。

FAIL  __tests__/App-test.js
● Test suite failed to run

TypeError: (0 , _native.createNavigatorFactory) is not a function

at Object.<anonymous> (node_modules/@react-navigation/material-top- tabs/lib/commonjs/navigators/createMaterialTopTabNavigator.tsx:50:16)
at Object.<anonymous> (node_modules/@react-navigation/material-top-tabs/lib/commonjs/index.tsx:4:1)

我没有写这个测试用例,它是在创建项目时默认的。我期待从这里看到通过单元测试,react-test-renderer 似乎有什么问题?

/**
* @format
*/

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 />);
});

最佳答案

你可能需要模拟renderer

我在使用 useHeaderHeight 时遇到了类似的问题

示例我有 import { useHeaderHeight } from '@react-navigation/stack';在我的屏幕文件中。所以当我运行测试时,我遇到了同样的错误

 FAIL  src/screens/expressCheckout/ExpressCheckoutScreen.test.tsx
● Test suite failed to run

TypeError: (0 , _native.createNavigatorFactory) is not a function

at Object.<anonymous> (node_modules/@react-navigation/stack/lib/commonjs/navigators/createStackNavigator.tsx:96:16)
at Object.<anonymous> (node_modules/@react-navigation/stack/lib/commonjs/index.tsx:9:1)

我通过在我的测试文件中添加下面提到的 jest mock 来修复这个问题,然后我能够运行我的测试

jest.mock('@react-navigation/stack', () => ({
useHeaderHeight: (): number => 0,
}));

关于javascript - TypeError : (0 , _native.createNavigatorFactory) 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66955048/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com