Шутка, дающая TypeError - PullRequest
0 голосов
/ 19 марта 2019

Я пишу тест, имитирующий событие нажатия на моем компоненте. Мой компонент имеет нижнюю строку

<Button name="1" clickHandler={this.handleClick} /> 

который тестирую с

it('Test Button component', () => {
    it('Test click event', () => {
      const mockCallBack = jest.fn();  
      const button = shallow((<Button onClick={mockCallBack}>1</Button>));
      button.find('button').simulate('click');
      expect(mockCallBack.mock.calls.length).toEqual(1);
    });
  });

Но когда я запускаю тест, он выдает ошибку

TypeError: this.props.clickHandler is not a function

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

1 Ответ

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

Попробуйте следующий код (я его не тестировал), но в основном используйте .simulate() непосредственно на оболочке и используйте .toHaveBeenCalled().

it('should test Button component', () => {
    it('shoud test click event', () => {
      const mockCallBack = jest.fn();  
      const button = shallow((<Button onClick={mockCallBack}>1</Button>));
      button.simulate('click');
      expect(mockCallBack).toHaveBeenCalled()
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...