测试onChange处理程序时,React状态变得不确定

时间:2020-02-27 17:48:29

标签: javascript reactjs jestjs enzyme

我试图通过更改Textfield的值后检查state的值来测试一些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 个答案:

答案 0 :(得分:1)

v未定义,请改用_。在测试文件中,也许您需要找到0而不是1?