测试onChange处理程序时,反应状态未定义

问题描述 投票:0回答:1

我正在尝试通过更改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测试的新手,所以我应该朝哪个方向提出任何建议!

javascript reactjs jestjs enzyme
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.