В настоящее время пытаюсь проверить, была ли вызвана кнопка «onPress» после ее нажатия, но у меня возникли некоторые проблемы. В моем fires onPress function when button is clicked
тестовом примере в SignUp.test.js
он может найти кнопку и все, но когда симуляция клика, он говорит:
Sign Up Page › fires onPress function when button is clicked
expect(jest.fn()).toHaveBeenCalled()
Expected number of calls: >= 1
Received number of calls: 0
28 | // wrapper.find('#navigate').prop('onPress')();
29 | wrapper.find('#navigate').at(0).simulate('click');
> 30 | expect(onPress).toHaveBeenCalled();
| ^
31 | });
32 | });
33 |
Вот мой код, чтобы помочь:
SignUp. js
const SignUp = ({ navigation }) => {
const navigateOnPress = () => navigation.navigate('SignIn');
return (
<View style={Styles.container}>
<Text>SignUp</Text>
<Button
id="navigate"
title="Press me"
onPress={navigateOnPress}
/>
</View>
);
};
SignUp.test. js
import React from 'react';
import { shallow } from 'enzyme';
import SignUp from '../../../components/SignUp/SignUp';
describe('Sign Up Page', () => {
function render(args) {
const defaultProps = {
navigation: {
navigate: jest.fn(),
},
};
const props = {
...defaultProps, ...args,
};
return shallow(<SignUp {...props} />);
}
it('renders the sign up page', () => {
const wrapper = render();
expect(wrapper).toMatchSnapshot();
});
it('fires onPress function when button is clicked', () => {
const wrapper = render();
const onPress = jest.fn();
wrapper.find('#navigate').prop('onPress')();
wrapper.find('#navigate').at(0).simulate('click');
expect(onPress).toHaveBeenCalled();
});
});