我目前正在尝试使用Browserify测试我为浏览器捆绑的各个节点模块。我正在使用Rewire和Sinon的组合来模拟我不想测试的任何依赖项。这大部分都有效。
我的主要问题是当我需要一个包含另一个需要调用模块的模块时,该模块具有前端依赖性。
// This is module #1 - what I'm wanting to test
var module2 = require('module2');
// This is module #2 - which I can mock with rewire
var module3 = require('module3'); // This is still executed
module.exports = something;
// This is module #3
var audioContext = new AudioContext(); // Browser-only API
module.exports = something
我想完全模拟模块#2中的需求。我甚至不想要它甚至试图要求模块#3,因为当它不理解用于浏览器的代码时它就会死掉。摩卡吐了出来:
ReferenceError: AudioContext is not defined
这可能吗?如果没有,有什么好的解决方法?我想我可以使用Karma在浏览器中启动测试,但这似乎是一个很大的开销,只是为了得到一个我不想测试工作的依赖。