我在反应原生中的测试遇到了一些麻烦。我正在使用酶,我试图点击打开抽屉的按钮。我也在使用反应导航,但是当我尝试这个问题时:
TypeError:navigation.openDrawer不是函数
const props = {
navigation: {
openDrawer: jest.fn(),
},
};
const wrapper = shallow(<HeaderButton {...props} />);
it('DrawerMenu is Called', () => {
expect(
wrapper
.find('AnimatedComponent')
.props()
.onPress(),
).toHaveBeenCalled();
});
const HeaderButton = (navigation: NavigationParams) => (
<TouchableRipple
onPress={() => navigation.openDrawer()}
>
<Icon
name="menu"
size={Platform.OS === 'ios' ? 20 : 24}
color="white"
style={{ marginHorizontal: 16 }}
/>
</TouchableRipple>
);
[链接到代码:https://gist.github.com/salomaoluiz/dd710b3506b95b3f0f13410a02ef41cf]
谢谢。
问题是HeaderButton
应该采取props
(其中有navigation
作为财产),而不是navigation
直接。
这应该工作:const HeaderButton = ({ navigation }) => (
或者,如果您愿意:
const HeaderButton = (props) => (
<TouchableRipple
onPress={props.navigation.openDrawer}
>