const goToLoginPage = () => { navigation.navigate(AppConstants.LOGIN_SCREEN) }); <TouchableOpacity onPress={goToLogin}> <Text>OK</Text> </TouchableOpacity>
如何使用Jest调用此方法?
nhaq1z211#
您需要模拟导航,以便能够检查是否调用了它
// 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#
您需要模拟导航,以便能够检查是否调用了它