簡體   English   中英

'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需要節點版本 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]
  }
}

您可以將這些代碼添加到頂部

!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);

更多細節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM