Jest/Enzyme document.createRange 不是挂载函数

Eri*_*mer 4 reactjs material-ui enzyme

尝试mount在呈现 MaterialUI 工具提示的组件上使用 ezymes时,停止我的测试时出现错误:

TypeError: document.createRange is not a function

Eri*_*mer 13

为了解决这个问题,我document.createRange在我的./src/setupTest.js

  document.createRange = () => ({
    setStart: () => {},
    setEnd: () => {},
    commonAncestorContainer: {
      nodeName: "BODY",
      ownerDocument: document,
    },
  })
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用这个解决方案。但我收到打字稿错误。您能解决这个问题吗?(property) Range.commonAncestorContainer: Node 返回距离文档最远的节点,它是范围的起始节点和结束节点的祖先。错误:类型 '{ 节点名称:字符串;所有者文档:文档;}' 缺少类型“Node”中的以下属性:baseURI、childNodes、firstChild、isConnected 和 45 (2认同)

小智 5

对于任何寻找 Typescript 解决方案的人

  document.createRange = () => ({
    setStart: jest.fn(),
    setEnd: jest.fn(),
    // @ts-ignore
    commonAncestorContainer: {
      nodeName: 'BODY',
      ownerDocument: document,
    },
  })
Run Code Online (Sandbox Code Playgroud)