我正在学习React,我创建了一个简单的计数器,我想做一个需要多次单击elements (+/-)的测试。我可以通过执行以下操作来手动完成:
it('should return correct value if click multiples times', () => {
const wrapper = mount(<Counter />);
const counter = wrapper.find('span');
const add = wrapper.find('button').at(0);
const subtract = wrapper.find('button').at(1);
add.simulate('click');
subtract.simulate('click');
subtract.simulate('click');
add.simulate('click');
add.simulate('click');
subtract.simulate('click');
subtract.simulate('click');
expect(counter.text()).to.equal('-1');
});有没有Enzyme's way to programmatically do simulate method to click n times
发布于 2018-03-01 23:50:05
我不相信酶提供了一种模拟点击n次的方法。但是,您可以编写自己的helper函数。
如下所示:
function simulateNTimes(enzymeNode, methodName, numberOfTimes) {
for (let i = 0; i < numberOfTimes; i++) {
enzymeNode.simulate(methodName);
}
}你可以这样使用它:
const add = wrapper.find('button').at(0);
simulateNTimes(add, "click", 2);发布于 2018-03-01 23:54:20
不,没有这样的东西,因为你有lodash实现。
_.times(x, add.simulate('click'));add.simulate('click'); \_.times(2,() => (subtract.simulate('click'))); \_.times(2,() => (add.simulate('click'))); \_.times(2,() => (subtract.simulate('click')));
https://stackoverflow.com/questions/49053433
复制相似问题