Node.js nodeJS proxyquire覆盖require的特定函数

Node.js nodeJS proxyquire覆盖require的特定函数,node.js,unit-testing,mocking,proxyquire,Node.js,Unit Testing,Mocking,Proxyquire,我目前正在使用proxquire单独测试一个模块,以覆盖此模块的要求 覆盖require的路径对proxyquire很有效。例如: var bar = require('./bar'); 但是,您是否可以使用proxyquire仅覆盖要测试的模块中所需的模块的特定功能?比如: var bar = require('./foo').bar(); 我需要留在proxyquire,因为我使用它来模拟在体系结构的另一层中发生的http请求。但是在测试的情况下,我也需要在模块中模拟“现在”的时间 所以

我目前正在使用proxquire单独测试一个模块,以覆盖此模块的要求

覆盖require的路径对proxyquire很有效。例如:

var bar = require('./bar');
但是,您是否可以使用proxyquire仅覆盖要测试的模块中所需的模块的特定功能?比如:

var bar = require('./foo').bar();
我需要留在proxyquire,因为我使用它来模拟在体系结构的另一层中发生的http请求。但是在测试的情况下,我也需要在模块中模拟“现在”的时间

所以现在我有这个,

var uraStub = sendMockRequest(paramListOfCheckin, queryList);
var setNowStub = function(){ return 1425998221000; };

var checkin = proxyquire('../src/logic/logicHandlerModules/checkin', {
  '../../persistence/ura' : uraStub,
  './checkin.setNow' : setNowStub
});

checkin.checkin(...)
setNow的实施是:

var setNow = function(){
  return new Date().getTime();
};

var checkin = function (...) {
  var now = require('./checkin').setNow();
Obviousley
”./checkin.setNow:proxyquire中的setnowsub
不起作用,因为这是错误的路径。但是由于对象定义中的语法错误,使用
。/checkin.setNow():setnowsub
也不起作用

有什么建议吗

提前谢谢