簡體   English   中英

為什么在測試中未定義“BroadcastChannel”類?

[英]Why is "BroadcastChannel" class undefined in tests?

當我們的 React 應用程序發生會話超時時,我使用標准化的廣播頻道 API ( https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API ) 在多個選項卡之間進行消息傳遞。

在所有經過測試的瀏覽器上,這工作得很好。 但是當我運行我們的笑話測試時,我收到以下錯誤消息:“ReferenceError: BroadcastChannel is not defined”

我在鈎子之外定義了一個 BroadcastChannel 實例,如下所示:

const sessionTimeoutChannel = new BroadcastChannel("session_timeout_channel");

export default function useSessionTimeout() {...}

有人知道為什么測試似乎不知道 BroadcastChannel API 嗎? 或者知道一個解決方法,以便測試再次運行?

在這里沒有經驗,但可能是您的測試在 nodejs 中運行......所以實際上沒有瀏覽器支持。 我在 npm 上找到了這個,也許它需要添加到您的測試項目中? https://www.npmjs.com/package/broadcast-channel

暫無
暫無

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

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