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

标签 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;
});

最佳答案

这是我模拟节点的方式。

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;
});

关于javascript - 如何使用 Jest 模拟 + Enzyme 浅层测试和/或模拟 ref 回调节点并测试 .querySelector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009274/

相关文章:

javascript - 如何查看提交表单的 url 输出?

javascript - 重新加载 Commerce.js 结帐页面时出现错误( react 教程)

reactjs - 如何使用React和Spring Boot连接docker-compose

reactjs - global.location 在 Jest 测试中不起作用

javascript - 如何检查http post调用后函数是否被调用?

javascript - 从字符串中删除不带引号的属性

javascript - HTML5 应用程序 - 在哪里存储数据?

javascript - contenteditable 中 <li> 中的元素有时不会收到按键事件

javascript - 选中/取消选中复选框时管理状态 - React

javascript - 如何在 Jest 中访问局部变量