Я пытаюсь проверить простую навигацию между двумя экранами. У меня есть LandingScreen:
class LandingScreen extends Component {
constructor(props){
super(props);
}
handleNavigation = () => {
this.props.navigation.navigate('AgeScreen');
}
render() {
return (
<View>
//extra UI components
<TouchableOpacity onPress={this.handleNavigation}>
<View style={styles.buttonWrapper}>
//extra UI components
</View>
</TouchableOpacity>
</View>
)
}
}
export default LandingScreen;
Когда нажата handleNavigation
, я ожидаю, что отобразится AgeScreen
. Я проверил это вручную, и это работает; тем не менее, я также хочу добавить к нему модульный тест.
Это модульный тест, который я написал до сих пор:
describe('Testing navigation', () => {
it('Navigates as expected', () => {
let handleNavigationMock = jest.fn()
const navigation = { navigate: jest.fn() };
let landingScreen = renderer.create(
<LandingScreen
handleNavigation={navigation}
navigation={navigation}
/>
).getInstance()
landingScreen.handleNavigation();
expect(handleNavigationMock).toBeCalled();
});
});
Моя проблема заключается в том, что тест завершается неудачно с сообщение:
Expected number of calls: >= 1
Received number of calls: 0
Мои вопросы:
- Это правильный способ проверки навигации между экранами?
- Если # 1 верно, как я могу исправить модульный тест?
Любая помощь будет высоко оценена!