我安装了browser-image-compression,作为其功能的一部分,它创建了一个Worker。现在,当我进行笑话测试时,出现以下错误:
Test suite failed to run
ReferenceError: Worker is not defined
没有任何连接到使用浏览器图像压缩的功能的测试。
package.json中的脚本部分有以下两行
"test": "react-scripts test",
"test:ci": "cross-env CI=true react-scripts test"
哦,我有一个用于设置测试的文件。我应该在这里嘲笑工人吗?
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import '@domain/yup';
configure({
adapter: new Adapter()
});
global.fetch = require('jest-fetch-mock');
答案 0 :(得分:1)
晚些时候对此做出回应,但是它可以帮助其他人-但是遵循comment可以帮助我解决这个问题。
如果将以下内容添加到其自己的文件中-我在与名为dir
的{{1}}文件相同的setupTests
内:
workerMock.js
然后将那个export default class Worker {
constructor(stringUrl) {
this.url = stringUrl;
this.onmessage = () => {};
}
postMessage(msg) {
this.onmessage(msg);
}
}
文件导入到您的测试设置文件中,并添加Worker
。您的设置文件可能如下所示:
window.Worker = Worker
希望这会有所帮助
答案 1 :(得分:0)
一个更好的解决方案是将“ browser-image-compression”软件包更新到最新版本,这对我有所帮助。