Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 来自导入的NPM模块的工作程序导致jest测试失败_Unit Testing_Npm_Jestjs - Fatal编程技术网

Unit testing 来自导入的NPM模块的工作程序导致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" 哦,我有一个设

我安装了它,作为其功能的一部分,它创建了一个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"
哦,我有一个设置测试的文件。我应该在这里模仿工人吗

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;

希望这有帮助

一个更好的解决方案是将“浏览器图像压缩”软件包更新到最新版本,这对我很有帮助