反应酶-模拟多次点击

时间:2019-06-10 14:04:01

标签: reactjs jestjs enzyme

在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");

1 个答案:

答案 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'))