Jest /酶/ JSDOM document.body.createTextRange不是一个函数
问题描述:
我想测试一个反应组件,并且我似乎正在碰到一个JSDOM问题。Jest /酶/ JSDOM document.body.createTextRange不是一个函数
当我安装我的组件;
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是没有得到正确的建成,但我不知道为什么。有没有人见过这个?
答
您可以设定和模拟的东西global
对象:
global.body.createTextRange = jest.fn()
修复的方法是这里https://*.com/questions/21572682/createtextrange-is-not-working-in-chrome/46424247 #46424247 – danday74