Состояние реакции становится неопределенным при тестировании обработчика onChange - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь протестировать некоторый код React / Redux, проверяя значение состояния после изменения значения текстового поля.

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

Я просмотрел несколько похожих постов по этому вопросу, но, похоже, не могу понять.

    <TextField
      label="Search Term"
      styles={{ root: { width: 200 } }}
      id="query"
      placeholder="Query"
      onChange={(_,v) => this.setState({ query: v })}
    />

Файл тестирования

    const wrapper = shallow(<Dataset/>);
    wrapper.find(TextField).at(1).value = "20"; //does nothing
    wrapper.find(TextField).at(1).simulate('change', 20); //causes state.query to become undefined
    wrapper.find(PrimaryButton).at(0).simulate('click');
    wrapper.update();
    expect(wrapper.state('query')).toEqual(20);

Я плохо знакомы с тестированием React, поэтому любые советы в каком направлении я должен принять!

1 Ответ

1 голос
/ 27 февраля 2020

v не определено, используйте _ вместо. А в тестовом файле, возможно, вам нужно найти в 0, а не в 1?

...