第二个sinon存根未被asynchronous并行调用

我试图testing下面的代码:

var archive = function(callback){ call to this.archive() here... } var map = function(callback){ call to this.map() here... } async.parallel([map, archive], function(error){ handle errors here... }) 

我正在testing句柄错误function是通过存档和映射function,以便其中一个返回错误:

 var mapStub = sinon.stub(MyClass.prototype, 'map').yields("mock error",null ); var archiveStub = sinon.stub(MyClass.prototype, 'archive').yields(null,null ); 

我遇到的问题是,archivestub似乎并没有被使用,因为我从该函数调用的函数(如果该函数被调用,因为我没有初始化variables的testing)。

我有另一个testing,其中存档函数返回一个错误,而不是地图函数,这个testing通过,而不是调用任何残桩方法,而不是存根。

 var mapStub = sinon.stub(MyClass.prototype, 'map').yields(null,null ); var archiveStub = sinon.stub(MyClass.prototype, 'archive').yields("mock error",null ); 

你想使用yieldsAsync而不是yields ,否则错误会过早地产生(在所有的并行“任务”已经开始之前),而async.map()停止进一步的处理(使用yields基本上把它变成一个同步操作)。