【问题标题】:Jest/Enzyme/JSDOM document.body.createTextRange is not a functionJest/Enzyme/JSDOM document.body.createTextRange 不是函数
【发布时间】:2017-06-25 06:14:31
【问题描述】:

我正在尝试测试一个 React 组件,但我似乎遇到了 JSDOM 问题。

当我挂载我的组件时;

const component = mount(
   <PipelineActions pipelineActions={value} {...actions} />
);

我收到一个错误;

document.body.createTextRange 不是函数

我尝试通过直接设置dom;

(global as any).document = jsdom.jsdom('');
(global as any).window = document.defaultView;

没有效果。当我尝试console.log(document.body) 时,我也得到了一些奇怪的东西;

HTMLBodyElement {}

似乎 DOM 没有正确构建,但我不确定为什么。有人见过这个吗?

【问题讨论】:

标签: javascript typescript jestjs enzyme jsdom


【解决方案1】:

您可以在 global 对象上设置和模拟内容:

global.body = {createTextRange: jest.fn()}

【讨论】:

  • 那行不通。我得到TypeError: Cannot set property 'createTextRange' of undefined
  • 更新了我的答案
猜你喜欢
  • 2019-09-26
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2019-12-09
  • 2017-06-28
  • 1970-01-01
  • 2020-03-28
相关资源
最近更新 更多