如何测试和/或模拟ref回调节点并使用Jest mocking + Enzyme浅测试.querySelector?

时间:2017-05-16 18:45:18

标签: javascript reactjs jestjs enzyme

使用Jest模拟和Enzyme浅渲染,您将如何测试或模拟以下内容?:

  onClick = () => {
    const inputNode = this.node.querySelector('input');
    inputNode.click();
  };

我试过了:

it('calls button', () => {
  const wrapper = shallow(
    <Component />,
  );
  const wrapperInstance = wrapper.instance();
  const inputNode = document.createElement('input');
  inputNode.value = '';
  const node = document.createElement('div').appendChild(inputNode);
  wrapperInstance.node = node;
});

1 个答案:

答案 0 :(得分:3)

以下是我将如何模拟节点。

it('calls button', () => {
  const wrapper = shallow(
    <Component />,
  );
  const wrapperInstance = wrapper.instance();
  const input = {value: 'someValue'}
  const node = {
    querySelector: (v) => v === 'input' ? input : null
  }
  wrapperInstance.node = node;
});