在React / Jest / Enzyme中进行测试时,我希望模拟多次单击,然后根据单击的结果来测试结果。我尝试使用.simulate('click)
,但是它仅用于一个节点,与使用.prop('onClick)
相同。有没有办法对多个节点执行此操作?
例如这就是我所拥有的......
wrapper.find(Button).at(0).simulate('click');
wrapper.find(Button).at(3).simulate('click');
wrapper.find(Button).at(2).simulate('click');
expect(wrapper.find(Answer).text()).toEqual("23");
希望有这样的东西吗? ....
wrapper.find(Button).at([0, 3, 2]).simulate('click');
expect(wrapper.find(Answer).text()).toEqual("23");
答案 0 :(得分:0)
您应该能够利用JavaScript来做到这一点,就像这样:
const components = Array.from(wrapper.find(Button));
components.forEach(c => c.simulate('click'));
要在特定索引处使用节点,请对其进行一些修改。
const atNodes = [0, 2, 3];
const components = Array.from(wrapper.find(Button));
atNodes.forEach((c, i) => components[c] && components[c].simulate('click'))