使用proxyquire to stub需要在第三方模块中依赖

时间:2016-01-13 21:01:13

标签: node.js unit-testing mocha proxyquire

我正在尝试使用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语句中引入的内容?也许这就是我的困惑所在。

0 个答案:

没有答案