Unit testing 来自导入的NPM模块的工作程序导致jest测试失败
我安装了它,作为其功能的一部分,它创建了一个Worker。现在,当我运行jest测试时,我得到以下错误:Unit testing 来自导入的NPM模块的工作程序导致jest测试失败,unit-testing,npm,jestjs,Unit Testing,Npm,Jestjs,我安装了它,作为其功能的一部分,它创建了一个Worker。现在,当我运行jest测试时,我得到以下错误: 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" 哦,我有一个设
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');
后来才对此做出回应,但这可能会帮助其他人——但遵循这一点有助于我解决这个问题 如果您将以下内容添加到它自己的文件中-我的文件与名为
workerMock.js
的setupTests
文件位于同一dir
中:
export default class Worker {
constructor(stringUrl) {
this.url = stringUrl;
this.onmessage = () => {};
}
postMessage(msg) {
this.onmessage(msg);
}
}
然后将该Worker
文件导入测试设置文件,并添加window.Worker=Worker
。您的安装文件可能如下所示:
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import '@domain/yup';
import Worker from 'path-to-your-worker-file-above';
configure({
adapter: new Adapter()
});
global.fetch = require('jest-fetch-mock');
window.Worker = Worker;
希望这有帮助一个更好的解决方案是将“浏览器图像压缩”软件包更新到最新版本,这对我很有帮助