首页 > 解决方案 > 使用 react-navigation 导航用户的错误测试功能

问题描述

我正在测试我的页面,我正在调用一个将用户导航到另一个页面的函数,但我收到以下错误:

在此处输入图像描述

这是我的测试代码:

it('must be navigated to the forgot password screen', async () => {
    const mockedNavigate = jest.fn();

    jest.mock('@react-navigation/native', () => {
      return {
        ...jest.requireActual('@react-navigation/native'),
        useNavigation: () => ({
          navigate: mockedNavigate,
        }),
      };
    });

    const { getByTestId } = render(<SignIn />, {
      wrapper: Providers,
    });

    fireEvent.press(getByTestId('forgot-password-button'));
    expect(mockedNavigate).toHaveBeenCalledTimes(1);
  });

这是我的页面代码:

import { RectButton } from 'react-native-gesture-handler';

export function SignIn() {
  const [email, setEmail] = useState('');
  const [password, setPassword] = useState('');

  const navigation = useNavigation();

  function forgotPasswordNavigate() {
    navigation.navigate('ForgotPassword')
  }

  return (
    <Container>
      
      <Form>

        <RectButton
          onPress={forgotPasswordNavigate}
          testID="forgot-password-button"
        >
          <ForgotPasswordText>Esqueci minha senha</ForgotPasswordText>
        </RectButton>

      </Form>
    </Container>
  );
}

我需要在此测试中调用我的函数,以便我的测试通过

有人可以帮我吗?

标签: react-nativeunit-testingjestjsreact-testing-library

解决方案


推荐阅读