2017-02-07 43 views
2

我想测试一个反应组件,并且我似乎正在碰到一个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是没有得到正确的建成,但我不知道为什么。有没有人见过这个?

+0

修复的方法是这里https://stackoverflow.com/questions/21572682/createtextrange-is-not-working-in-chrome/46424247 #46424247 – danday74

回答

0

您可以设定和模拟的东西global对象:

global.body.createTextRange = jest.fn()