编写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);
- 从一个ID数组到一个名称数组(mongo,nodejs)
- async.each嵌套在async.waterfall中
- 我如何pipe理Node.jsasynchronousvariables作用域?
- 使用瀑布节点async.js多function
- Node.JS async.parallel混淆| 什么是由async.map返回
- nodejs循环async.parallelcallback
- error handling与嵌套callbackasynchronous瀑布
- Async.retry在等待间隔之前立即执行
- 在Node.js中使用MongoDB进行扩展,我应该什么时候一次查询所有的ID,并行查询每个ID?