'globalThis'在Jest测试用例中未充分定义

问题描述 投票:0回答:1

我在React WebApp中使用globalThis属性,特别是globalThis.scrollTo(0,0)。

我正在使用Jest与酶一起进行单元测试。

截至测试用例失败,因为它无法识别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”的错误

javascript reactjs jestjs enzyme jsdom
1个回答
0
投票

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]
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.