编写async.parallel的testing。

我是javascript的新手。我正在尝试使用proxyquire编写基本的unit testing。 下面的代码。

文件 – 答:

const modA=require('./modA'); const modB=require('./modB'); const async=require('async'); module.exports=function(a,b,callback){ async.parallel([ function(callback){ // db call modA(a,b,callback); }, function(callback){ // db call mobB(a,b,callback); } ], //not able to test code (err,res){ //do something }); 

};

文件A的unit testing如下所示:

 const proxyquire=require('proxyquire'); function modaAStub(a, b, callback) { return (null, modAresponse); } function modaBStub(a, b, callback) { return (null, modaBresponse); } describe('test suite', () => { it('test: should return results', (done) => { const fileA = proxyquire('../../fileA', { './modA': modaAStub, './modB': modaBStub }); fileA(someinput1,someinput2); done(); }); }); 

问题是,我无法弄清楚如何testingfileA中有'//做些什么'的代码片段。

欣赏任何指针/代码。

谢谢。

好吧,我太笨了。fileA的unit testing如下图所示。

  const proxyquire=require('proxyquire'); const async=require('async'); const expect=require('chai').expect; const modAresponse={ a:'1' }; const modBresponse={ b:'1' }; const a={ a:'1' }; const b={ b:'1' }; const someresponse={ a:'1', b:'1' }; function modaAStub(a, b, callback) { return callback(null, modAresponse); } function modaBStub(a, b, callback) { return callback(null, modaBresponse); } describe('test suite', () => { it('test: should return results', (done) => { const fileA = proxyquire('../../fileA', { './modA': modaAStub, './modB': modaBStub, async }); fileA(a,b,(err,response)=>{ expect(JSON.stringify(response)).to.equal(JSON.stringify(someresponse)); }); done(); }); }); 

您可以传递另一个函数,并将其用作callback函数。

 function callbackStub(err, result) { return (null, modAresponse); } 

然后在你的文件中答:

 // import the callback stub above async.parallel([ function(callback){ // db call modA(a,b,callback); }, function(callback){ // db call mobB(a,b,callback); } ],callbackStub);