Подтвердить что ты не робот

Имитация ввода текста с помощью responseJs TestUtils

Я хочу, чтобы смоделировать пользователя, вводящего текстовое поле с помощью реакции, чтобы я мог проверить мои сообщения о статусе проверки.

У меня есть компонент реакции, который проверяет на keyUp

Ниже приведен простой пример того, что ive попробовал.

nameInput.props.value = 'a';
React.addons.TestUtils.Simulate.keyUp(nameInput);
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error');

Это не изменяет значение связанного текстового поля при отладке в валидаторе

React.addons.TestUtils.Simulate.keyUp(nameInput, {key: 'a'});
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error');

это тоже не.

Может ли кто-нибудь указать мне на правильный трек, второй - встроенный с документацией, которую я смог найти в симуляторе (http://facebook.github.io/react/docs/test-utils.html), первый имеет смысл для меня (установите фактическое значение текстового поля, затем подделайте событие)

4b9b3361

Ответ 1

Установив nameInput.props.value = 'a';, вы фактически не обновляете значение в своем компоненте.

Вы должны использовать React.addons.TestUtils.Simulate.change(nameInput, { target: { value: 'a' } }); или что-то подобное симуляции, изменяя фактическое значение.

Ответ 2

Я обнаружил, что этот синтаксис работает лучше для меня:

  const emailInput = component.refs.userEmailInput;
  emailInput.value = '[email protected]';
  Simulate.change(component.refs.userEmailInput);

Вторая строка обновляет ввод с текстом "[email protected]". Последняя строка вызывает изменение.