gpt4 book ai didi

typescript - 如何在使用 React Navigation 和 TypeScript 时使用 Jest 和 Enzyme 对静态 navigationOptions 进行单元测试?

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:11 24 4
gpt4 key购买 nike

我正在使用 TypeScript 构建一个 React Native 应用程序。我正在使用 Jest 和 Enzyme 进行组件测试。我也在使用 React Navigation。

我的一个屏幕有以下 navigationOptions :

static navigationOptions = ({ navigation }: NavigationScreenProps) => ({
headerLeft: Platform.select({
android: (
<Icon
name="md-menu"
type="ionicon"
containerStyle={styles.icon}
onPress={navigation.toggleDrawer}
/>
),
ios: null
}),
headerTitle: strings.homeTitle

});

我想编写单元测试以确保 <Icon />组件被渲染。类似于这里:

const props = createTestProps({});
const wrapper = shallow<HomeScreen>(<HomeScreen {...props} />);

it("should render a <View />", () => {
expect(wrapper.find(View)).toHaveLength(1);
});

我的问题是,我想不出选择器来选择它。如何选择 static navigationOptions

我也试过像这样检查 wrapper :

expect(wrapper.instance().navigationOptions)

但是包装器的实例没有导航选项。

最佳答案

由于它是静态函数,您可以在不创建新实例的情况下调用它。

test('navigation options', () => {
const naviProp = { navigation: { navigate: () => {} } };
const navigationOptions = HomeScreen.navigationOptions(naviProp);

expect(navigationOptions).toMatchSnapshot();
});

关于typescript - 如何在使用 React Navigation 和 TypeScript 时使用 Jest 和 Enzyme 对静态 navigationOptions 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52699142/

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