我正在尝试使用proxyquire在第三方模块所需的模块中存根需求。
示例:
我的模块需要一个名为'foo'的第三个mod。
该模块依赖于另一个名为“bar”的库,而在bar中有一个我想要模拟的要求。这可能吗?
在名为'three'的第三方库中:
var bar = require('bar');
bar lib中的:
var thingiwanttomock = require('thingiwanttomock');
然后在我的测试中出现类似的事情:
it("test", function() {
var mocked = proxyquire('thingiwanttomock', {});
});
修改
我认为我想要的是这样的:
var three = proxyquire('three', {
'bar': {
'thingiwanttomock': {
'mocked': true
}
}
}
});
但是,如果我在条形图库中放置一个控制台日志并打印出需要之后的thingiwanttomock变量,那么它就不是我的模拟对象。
bar lib中的:
var thingiwanttomock = require('thingiwanttomock');
// this is not my object object
console.log('thingiwanttomock should be a mock', thingiwanttomock);
代理查询是否会实际更改从依赖库中的require语句中引入的内容?也许这就是我的困惑所在。