在我的webpack项目中添加react-slick滑块后,我的chai测试开始失败
C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:226
throw new Error('matchMedia not present, legacy browsers require a polyfill');
^
Error: matchMedia not present, legacy browsers require a polyfill
at Object.MediaQueryDispatch (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:226:19)
at C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:291:9
at i (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:11:20)
at Object.<anonymous> (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:21:2)
滑块组件的作者推荐here这个问题的唯一解决方法是开玩笑。我在我的环境中尝试过但它没有用。
答案 0 :(得分:0)
解决方案应该基于你的测试运行员一般你必须模拟 window.matchMedia
window.matchMedia = () => ({
matches : false,
addListener : () =>{},
removeListener: () =>{},
});
或
window.matchMedia = function(){
matches : false,
addListener : function() {},
removeListener: function() {},
};
如果您的窗口未定义,您可能会尝试将其附加到测试跑步者使用的全局对象。
希望这会有所帮助,祝你好运
答案 1 :(得分:0)
我正在使用摩卡咖啡。
我在dom.js
window.matchMedia || (
window.matchMedia = function () {
return {
matches: false,
addListener() {},
removeListener() {},
};
}
);
所以我可以使用此命令来调用它。
mocha --compilers js:babel-register --require dom.js --recursive