'globalThis' 未定义 Jest 测试用例
'globalThis' underfined for Jest test cases
我在我的 React WebApp 中使用 globalThis 属性 具体 globalThis.scrollTo(0,0)。
我正在使用 Jest 和 Enzyme 进行单元测试。
截至测试用例失败,因为它无法识别 globalThis 并表示 'globalThis' 未定义。
有没有办法将 globalThis 引入到测试中,就像 jsdom 对 window 等所做的那样?
例如
--abc.tsx--
const abc: React.FC<CustomProps> = props => {
useEffect(() => {
globalThis?.scrollTo(0,0);
}
}
--abcTest.tsx--
wrapper = mount(<abc/>);
mount 产生错误 "globalThis" 未定义
globalThis needs node version 12+. I use 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]
}
}
您可以将这些代码添加到顶部
!function(t){function e(){var e=this||self;e.globalThis=e,delete t.prototype._T_}"object"!=typeof globalThis&&(this?e():(t.defineProperty(t.prototype,"_T_",{configurable:!0,get:e}),_T_))}(Object);
我在我的 React WebApp 中使用 globalThis 属性 具体 globalThis.scrollTo(0,0)。
我正在使用 Jest 和 Enzyme 进行单元测试。
截至测试用例失败,因为它无法识别 globalThis 并表示 'globalThis' 未定义。
有没有办法将 globalThis 引入到测试中,就像 jsdom 对 window 等所做的那样?
例如
--abc.tsx--
const abc: React.FC<CustomProps> = props => {
useEffect(() => {
globalThis?.scrollTo(0,0);
}
}
--abcTest.tsx--
wrapper = mount(<abc/>);
mount 产生错误 "globalThis" 未定义
globalThis needs node version 12+. I use 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]
}
}
您可以将这些代码添加到顶部
!function(t){function e(){var e=this||self;e.globalThis=e,delete t.prototype._T_}"object"!=typeof globalThis&&(this?e():(t.defineProperty(t.prototype,"_T_",{configurable:!0,get:e}),_T_))}(Object);