Как протестировать функцию, которая обновляет состояние в компоненте с помощью jest - PullRequest
0 голосов
/ 05 мая 2019

Вот фрагмент моего приложения

constructor(props) {
    super(props);
    this.state = {
      searchText:""
    };
  }

  handleSelectionInput = (e) => {
    this.setState({searchText:e.target.value});

  }

Как мне проверить handleSelectionInput.

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Вы можете сделать это с помощью фермента.посмотрите пример ниже, где я тестировал событие onchange

import React from 'react';
import Adapter from 'enzyme-adapter-react-16';
import { shallow, configure } from 'enzyme';
import Input from './Input';

configure({ adapter: new Adapter() });

test('Date with default date value handle click', () => {
  const component = shallow(
    <Input
      name="input"
      id="input"
      error
      pattern=".*"
      transformValue={value => value}
    />
  );
  expect(component.state().value).toEqual('');
  component.find('#input').simulate('change', { target: { name: 'input', value: '02' } });
  expect(component.state().value).toEqual('02');
  component.find('#input').simulate('blur', { target: { name: 'input', value: '02' } });
  expect(component.state().value).toEqual('02');
});

Надеюсь, это вам поможет.

0 голосов
/ 06 мая 2019

Я нашел решение своей проблемы, проблема заключалась не в симуляции, а в работе с экземпляром оболочки, как показано ниже

it("Test handleSelectionInput", () => {
expect(wrapper.state('searchText')).toBe("");
instance.handleSelectionInput({ target: { name: 'input', value: '02' } });
expect(wrapper.state('searchText')).toBe("02");

});

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