模拟点击material-ui切换组件测试

Osc*_*nco 5 javascript reactjs material-ui enzyme

所以我正在尝试使用 jest 和酶测试一些基于 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);
}
Run Code Online (Sandbox Code Playgroud)

并在测试中:

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

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

clickIt(toggle);

expect(toggle.props().checked).to.be(true); // <- fails
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

Osc*_*nco 5

通过使用绕过它:

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