![](/img/trans.png)
[英]how to pause the Mock Service Worker for testing the intermediate state, in react testing library?
[英]How to mock web worker for testing in react testing library?
我正在創建一個這樣的網絡工作者:
const getWebWorker = () => {
let worker;
if (typeof worker === 'undefined') {
worker = new Worker('worker.js');
}
return worker;
};
然后我這樣調用函數:
useEffect(() => {
getWebWorker().onmessage = (event) => {
setWorkerData(event.data);
};
}, []);
實際上 worker.js 文件位於 public 文件夾下,而 postMessage 是一個對象。
我正在使用 react 測試庫/jest 進行測試。 當我運行yarn run test
我得到錯誤ReferenceError: Worker is not defined
at worker = new Worker('worker.js');
.
我知道我需要嘲笑工人,我只是對如何去做感到困惑。
我在__mock__
文件夾中命名模擬文件是什么?
嘲笑工人會是什么樣子?
____.test.js 文件中有什么我必須做的嗎?
謝謝
Jest 默認使用 JSDOM 環境,這意味着它不支持 Workers。 這意味着無法測試同時需要 NodeJS 功能和 Web Workers 的代碼。 jsdom-worker
jsdom-worker試圖讓網絡工作者開玩笑,但自 2020 年以來沒有更新,而且似乎沒有維護......順便說一句,有一個被標記為實驗性的衍生產品。
我有同樣的問題,並結束了使用playwright的 e2e 測試來測試涉及網絡工作者的事物。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.