来自导入的NPM模块的工作程序导致开玩笑测试失败

时间:2019-10-08 15:29:42

标签: unit-testing npm jestjs

我安装了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');

2 个答案:

答案 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”软件包更新到最新版本,这对我有所帮助。