我正在React WebApp中使用globalThis属性,特别是globalThis.scrollTo(0,0)。
我正在使用Jest和酶进行单元测试。
截至测试用例,由于无法识别globalThis而失败,并说“ globalThis”未定义。
有没有一种方法像jsdom在window等中一样将globalThis引入测试中?
例如
-abc.tsx-
const abc: React.FC<CustomProps> = props => {
useEffect(() => {
globalThis?.scrollTo(0,0);
}
}
-abcTest.tsx-
wrapper = mount(<abc/>);
mount 会产生错误,指出“ globalThis”未定义
答案 0 :(得分:12)
globalThis需要的节点版本为12+。我使用n作为节点版本管理。
console.log(globalThis);
对于node/10.16.2
,出现错误:
console.log(globalThis);
^
ReferenceError: globalThis is not defined
对于node/12.6.1
,得到了:
Object [global] {
global: [Circular],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] { [Symbol(util.promisify.custom)]: [Function] },
queueMicrotask: [Function: queueMicrotask],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(util.promisify.custom)]: [Function]
}
}