我对我的react native项目使用jest,我想测试具有“ onPress”的组件。单击它时,会出现警报。
<ListItem
testID={'Contact'}
onPress={() => alert('hello')}
/>
并进行测试;
it('test onPress functionality', () => {
window.alert = jest.fn();
const wrapper = shallow(
<Contact
onPress={window.alert}
/>,
);
wrapper
.findWhere(node => node.prop('testID') === 'Contact')
.props()
.onPress();
expect(window.alert).toHaveBeenCalledWith('hello');
});
但是此测试会给出警报错误。
ReferenceError:警报未定义onPress = {()=> alert('hello')}
请帮助我解决此错误。
答案 0 :(得分:1)
.use react native Alert
import {Alert} from 'react-native';
<ListItem
testID={'Contact'}
onPress={() => Alert.alert('hello')}
/>
查看文档here
答案 1 :(得分:0)
您的测试不正确,因为您正在测试将'onPress'作为参数。
expect(window.alert).toHaveBeenCalledWith('hello');
上面的方法应该起作用。