模拟包含仅浏览器代码的节点模块依赖项

时间:2015-12-27 22:31:29

标签: node.js unit-testing browserify sinon

我目前正在尝试使用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在浏览器中启动测试,但这似乎是一个很大的开销,只是为了得到一个我不想测试工作的依赖。

0 个答案:

没有答案
相关问题