使用sinon使用async.each测试功能

时间:2020-06-28 04:18:14

标签: node.js sinon async.js

我有一个函数,可以对不同的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();
            });
        });

0 个答案:

没有答案