Реагируй на натив с Jest - не могу прочитать свойство <propName>из неопределенного - PullRequest
1 голос
/ 21 марта 2019

Я использую Jest и React Test Renderer для тестирования компонента React Native, в который я добавляю некоторые параметры к объекту реагировать-навигации при монтировании, например:

  componentDidMount() {
    const { setParams } = this.props.navigation;

    setParams({ subTitle: this.props.user.outlet.name.toUpperCase() });
  }

Это нормально работает в пользовательском интерфейсе, но в тестах я получаю ошибку TypeError: Cannot read property 'outlet' of undefined

Пропуск navigation через пропеллер работает нормально, но я предполагаю, что не пропускаю user правильно. Что я делаю не так?

Вот мой тест (все, что я не считал релевантным, пропущено):

const props = {
  navigation: {
    navigate: jest.fn()
  },
  user: {
    // user info here
  }
};

const tree = renderer.create(
    <MockApp mocks={{ ...baseMocks, ...mocks }}>
      <Home {...props} />
    </MockApp>
  );

await wait(0);

expect(tree.toJSON()).toMatchSnapshot();

1 Ответ

0 голосов
/ 22 марта 2019

Обновление:

Возможно, не идеальное решение, но, учитывая, что я не мог понять, почему это не сработало, во-первых, я прошел тесты, проверив наличиеиз user в моем компоненте:

user &&
  user.outlet &&
  navigation.setParams({ subTitle: user.outlet.name.toUpperCase() });

Хотелось бы, чтобы кто-то объяснил, почему это не сработало в первую очередь, хотя ...

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