Как правильно смоделировать метод getParam в React Navigation с помощью Jest - PullRequest
1 голос
/ 16 мая 2019

У меня есть приложение React Native, в котором я пытаюсь написать несколько интеграционных тестов с использованием Jest & Enzyme. Моя ситуация выглядит следующим образом, у меня есть компонент, который выбирает параметр навигации, передаваемый ему с предыдущего экрана, используя getParam - который работает нормально, я просто изо всех сил пытаюсь успешно получить значение с помощью фиктивных данных. Мой код выглядит так:

В моем контейнере у меня есть это в методе рендеринга:

const tickets = navigation.getParam('tickets', null);

Тогда в моем тесте у меня будет следующее:

const createTestProps = (testProps: Object, navProps: any = {}) =>
  ({
    navigation: {
      navigate: jest.fn(),
      getParam: jest.fn(),
      ...navProps,
    },
    ...testProps,
  } as any);

let props = createTestProps(
    {},
    {
      state: {
        // Mock navigation params
        params: {
          tickets: [
            {
              cellNumber: '123456789',
              ticketId: 'xxx',
            },
            {
              cellNumber: '123456789',
              ticketId: 'xxx',
            },
          ],
        },
      },
    }
  );

const container = mount(
    <MockedProvider mocks={mocks} addTypename={false}>
      <ThemeProvider theme={theme}>
        <TicketSummaryScreen {...props} />
      </ThemeProvider>
    </MockedProvider>
  );

Как вы можете видеть, я попытался смоделировать фактическое состояние навигации, которое я проверил с тем, что на самом деле используется в реальном компоненте, и это в основном то же самое. Значение для tickets по-прежнему не определено при каждом запуске теста. Я предполагаю, что это связано с тем, как я высмеял функцию getParam.

У кого-нибудь есть идеи? Буду очень признателен!

1 Ответ

2 голосов
/ 16 мая 2019

Возможно, попробуйте вернуть ложные данные из getParam

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...