const goToLoginPage = () => { navigation.navigate(AppConstants.LOGIN_SCREEN)});<TouchableOpacity onPress={goToLogin}> <Text>OK</Text></TouchableOpacity>
const goToLoginPage = () => {
navigation.navigate(AppConstants.LOGIN_SCREEN)
});
<TouchableOpacity onPress={goToLogin}>
<Text>OK</Text>
</TouchableOpacity>
如何使用Jest调用此方法?
nhaq1z211#
您需要模拟导航,以便能够检查是否调用了它
// Mock the useNavigation hook to return a navigation objectconst mockNavigation = jest.fn();jest.mock('@react-navigation/native', () => { const actualNavigation = jest.requireActual('@react-navigation/native'); return { ...actualNavigation, useNavigation: () => ({ navigate: mockNavigation, }), };});it('test if callback is being called', () => { // GIVEN render( <NavigationContainer> <theComponent> </NavigationContainer> ) const button = screen.getByText('OK') //WHEN fireEvent.press(button) //THEN expect(mockNavigation).toHaveBeenCalledWith(AppConstants.LOGIN_SCREEN)})
// Mock the useNavigation hook to return a navigation object
const mockNavigation = jest.fn();
jest.mock('@react-navigation/native', () => {
const actualNavigation = jest.requireActual('@react-navigation/native');
return {
...actualNavigation,
useNavigation: () => ({
navigate: mockNavigation,
}),
};
it('test if callback is being called', () => {
// GIVEN
render(
<NavigationContainer>
<theComponent>
</NavigationContainer>
)
const button = screen.getByText('OK')
//WHEN
fireEvent.press(button)
//THEN
expect(mockNavigation).toHaveBeenCalledWith(AppConstants.LOGIN_SCREEN)
})
1条答案
按热度按时间nhaq1z211#
您需要模拟导航,以便能够检查是否调用了它