Node.js 在使用proxyquire和mocha进行单元测试时,如何模拟模拟方法调用的时间延迟(超时)?

Node.js 在使用proxyquire和mocha进行单元测试时,如何模拟模拟方法调用的时间延迟(超时)?,node.js,mocha.js,proxyquire,Node.js,Mocha.js,Proxyquire,在模块a中测试方法时,我使用proxyquire模拟模块B的方法(在模块a中注入require())。模拟(模拟admitad.model.js模块的get_方法): const admitadModelMock={ “../services/admitad.model”:{ 获取活动:(限制,页面)=>新承诺((解决,拒绝)=> setTimeout(解析({活动:testData,计数:1000}),5000) ), }, }; 上述线路呼叫流程可解释如下 let res = resolv

在模块a中测试方法时,我使用proxyquire模拟模块B的方法(在模块a中注入require())。模拟(模拟admitad.model.js模块的get_方法):

const admitadModelMock={
“../services/admitad.model”:{
获取活动:(限制,页面)=>新承诺((解决,拒绝)=>
setTimeout(解析({活动:testData,计数:1000}),5000)
),
},
};
上述线路呼叫流程可解释如下

let res = resolve({campaigns: testData, count: 1000});
setTimeout(res, 5000);
你不想那样,是吗:-)

试试看


它将
resolve
调用包装在匿名函数中,并将其作为第一个参数传递给
setTimeout
调用

非常讨厌!你能检查一下我的更新吗?有没有办法在不创建新的promise对象并解决它的情况下使超时,因为它会严重破坏代码?没问题,完成了)@AntonPegov OK
let res = resolve({campaigns: testData, count: 1000});
setTimeout(res, 5000);
setTimeout(() => resolve({ campaigns: testData, count: 1000 }), 5000)