首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >酶elem.simulate(‘点击’)n次

酶elem.simulate(‘点击’)n次
EN

Stack Overflow用户
提问于 2018-03-01 23:45:33
回答 2查看 1.1K关注 0票数 1

我正在学习React,我创建了一个简单的计数器,我想做一个需要多次单击elements (+/-)的测试。我可以通过执行以下操作来手动完成:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2018-03-01 23:50:05

我不相信酶提供了一种模拟点击n次的方法。但是,您可以编写自己的helper函数。

如下所示:

代码语言:javascript
复制
function simulateNTimes(enzymeNode, methodName, numberOfTimes) {
  for (let i = 0; i < numberOfTimes; i++) {
    enzymeNode.simulate(methodName);
  }
}

你可以这样使用它:

代码语言:javascript
复制
const add = wrapper.find('button').at(0);
simulateNTimes(add, "click", 2);
票数 -1
EN

Stack Overflow用户

发布于 2018-03-01 23:54:20

不,没有这样的东西,因为你有lodash实现。

代码语言:javascript
复制
_.times(x, add.simulate('click'));

add.simulate('click'); \_.times(2,() => (subtract.simulate('click'))); \_.times(2,() => (add.simulate('click'))); \_.times(2,() => (subtract.simulate('click')));

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49053433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档