模拟点击 Material-UI 切换组件测试

5

我正在尝试使用jest和enzyme测试基于material-ui切换组件的一些功能。

我有一个通用的clickIt函数,对其他material-ui组件效果很好,但是在这个组件中似乎没有触发状态变化。

function clickIt(wrapper, selector) {
  let elem = wrapper;

  if (selector) {
    elem = wrapper.find(selector);
  }

  const node = ReactDOM.findDOMNode(elem.node);
  TestUtils.Simulate.touchTap(node);
}

在测试中:

const toggle = wrapper.find('#subscribe-toggle');

expect(toggle.props().checked).to.be(true);

clickIt(toggle);

expect(toggle.props().checked).to.be(true); // <- fails

有什么解决这个问题的想法吗?

切换组件没有 onTouchTap 属性,只有 onToggle 属性。可能是因为 touchTap 事件没有触发它? - Aron
也尝试使用了'click',但似乎不起作用。 - Oscar Franco
据我所知,由于性能/延迟问题,所有的material-ui组件都应该使用onTouchTap。 - Oscar Franco
1个回答

6
我用以下方法解决了这个问题:

// clickIt(toggle);
// toggle.last().simulate('click');
toggle.props().onChange(); // None of the above work, you can thank material ui for that one

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接