我试图通过更改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测试的新手,所以对我应该朝哪个方向的任何建议表示赞赏!
答案 0 :(得分:1)
v
未定义,请改用_
。在测试文件中,也许您需要找到0而不是1?