微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型错误:无法读取未定义 Jest 测试的属性“params” - React Native

如何解决类型错误:无法读取未定义 Jest 测试的属性“params” - React Native

我创建了一个测试文件来测试我关注的“BiddingScreen”,

const BiddingScreen = ({ route,navigation }) => {

const { currentBid } = route.params;


return (
    <SafeAreaView style={styles.main}>
        <Header title="BID Here" navigation={navigation} />
        <View style={styles.container}>
            <Text style={styles.currentBid}>{CurrentBid}$</Text>
        </View>
    </SafeAreaView>
)}

我的测试文件如下,

import React from 'react';
import renderer from 'react-test-renderer';
import BiddingScreen from "../../../src/containers/biddingScreen/BiddingScreen";

jest.mock('@react-native-firebase/auth');

jest.mock("react-native/Libraries/EventEmitter/NativeEventEmitter");


test('renders correctly',() => {
    const tree = renderer.create(< BiddingScreen />).toJSON();
    expect(tree).toMatchSnapshot();
});

当我运行测试文件时出现此错误

TypeError: Cannot read property 'params' of undefined

谁能帮我解决这个问题,谢谢

解决方法

只要您的组件道具没有默认值,您就需要模拟它们,例如:

describe('init',() => {
  test('renders correctly',() => {
    const mockedParams = {
      route: { params: { currentBid: 'whatever-id' } },navigation: ''
    };

    const tree = renderer.create(<BiddingScreen {...mockedParams} />).toJSON();
    expect(tree).toMatchSnapshot();
  });
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。