我有一个函数,可以对不同的URL发出HTTP请求,并返回响应并将响应保存在数组中。为了在不同的URL上循环,我使用了 async.each 函数。函数工作正常,但我不确定如何使用sinon.js对其进行测试。我取消了请求以提供一些答复。但我收到不正确的结果。如果我传递2个URL,但结果中只有第一个URL响应。谢谢
function getInformation(arrayofurls,callback)
{
async.each(arrayofurls,function(eachurl,callback){
//httprequest
request.get();
callback()
},function(err){});
}
测试案例:
stubbedRequest = sinon.stub(request,get);
stubbedRequest.callsFake((options,callback)=>{
if(opt.match(url1)
callback(response1);
else if(opt.match(url2)
callback(response2);
else
callaback(error);
}
it('get urls reponse', (done) => {
const input array = ['url1','url2'];
getSolutionChangeInfo(array, (e, r) => {
expect(r).to.be.deep.equal([{response1},{response2}]);
done();
});
});