Jest / Enzyme / JSDOM document.body.createTextRange不是函数

时间:2017-02-07 20:29:28

标签: javascript typescript jestjs enzyme jsdom

我正在尝试测试反应组件,而我似乎遇到了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没有正确构建,但我不确定原因。有没有人见过这个?

1 个答案:

答案 0 :(得分:0)

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

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