J. *_*ers 2 unit-testing typescript jestjs react-native enzyme
我正在用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
Run Code Online (Sandbox Code Playgroud)
});
我想编写单元测试以确保<Icon />呈现组件。类似于这里:
const props = createTestProps({});
const wrapper = shallow<HomeScreen>(<HomeScreen {...props} />);
it("should render a <View />", () => {
expect(wrapper.find(View)).toHaveLength(1);
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,我找不到选择器来选择它。我该如何选择static navigationOptions?
我还尝试过像这样的包装器:
expect(wrapper.instance().navigationOptions)
Run Code Online (Sandbox Code Playgroud)
但是包装器的实例没有navigationOptions。
由于具有静态功能,因此可以在不创建新实例的情况下调用它。
test('navigation options', () => {
const naviProp = { navigation: { navigate: () => {} } };
const navigationOptions = HomeScreen.navigationOptions(naviProp);
expect(navigationOptions).toMatchSnapshot();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
910 次 |
| 最近记录: |