Может ли компонентный метод, который изменяет его навигационные свойства, быть проверен юнитом? - PullRequest
3 голосов
/ 23 марта 2019

Мне нужно выяснить, как протестировать метод компонента, который не возвращает значение и не изменяет ни одно из состояний его компонента, все, что он делает, это нажимает на другой экран.

Я использую шутку и энзим для доступа к методам и состояниям класса.

Это метод, который я хочу проверить (если возможно):

  signUp() {
    this.props.navigation.push('Signup');
  }

1 Ответ

2 голосов
/ 23 марта 2019

Да, просто передайте имитацию для navigation проп:

import * as React from 'react';
import { shallow } from 'enzyme';

class SimpleComponent extends React.Component {
  signUp() {
    this.props.navigation.push('Signup');
  }
  render() { return null; }
}

test('signUp', () => {
  const navigationMock = { push: jest.fn() };
  const wrapper = shallow(<SimpleComponent navigation={navigationMock}/>);
  wrapper.instance().signUp();
  expect(navigationMock.push).toHaveBeenCalledWith('Signup');  // Success!
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...