第二个 sinon 存根未在异步并行中调用
Second sinon stub not called in async parallel
我正在尝试测试以下代码:
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...
})
我正在测试处理错误功能是否正常工作,方法是对归档和映射函数进行存根,以便其中之一 returns 出现错误:
var mapStub = sinon.stub(MyClass.prototype, 'map').yields("mock error",null );
var archiveStub = sinon.stub(MyClass.prototype, 'archive').yields(null,null );
我遇到的问题是 archiveStub 似乎没有被使用,因为我从一个由该函数调用的函数中得到错误(如果调用该函数是可以预料的,因为我没有此测试的初始化变量)。
我有另一个测试,其中存档函数 returns 一个错误而不是映射函数,并且这个测试通过似乎没有调用任何存根方法而不是存根。
var mapStub = sinon.stub(MyClass.prototype, 'map').yields(null,null );
var archiveStub = sinon.stub(MyClass.prototype, 'archive').yields("mock error",null );
您想使用 yieldsAsync
而不是 yields
,否则错误会过早产生(在所有并行 "tasks" 开始之前)并且 async.map()
停止任何进一步处理(使用 yields
基本上将其变成同步操作)。
我正在尝试测试以下代码:
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...
})
我正在测试处理错误功能是否正常工作,方法是对归档和映射函数进行存根,以便其中之一 returns 出现错误:
var mapStub = sinon.stub(MyClass.prototype, 'map').yields("mock error",null );
var archiveStub = sinon.stub(MyClass.prototype, 'archive').yields(null,null );
我遇到的问题是 archiveStub 似乎没有被使用,因为我从一个由该函数调用的函数中得到错误(如果调用该函数是可以预料的,因为我没有此测试的初始化变量)。
我有另一个测试,其中存档函数 returns 一个错误而不是映射函数,并且这个测试通过似乎没有调用任何存根方法而不是存根。
var mapStub = sinon.stub(MyClass.prototype, 'map').yields(null,null );
var archiveStub = sinon.stub(MyClass.prototype, 'archive').yields("mock error",null );
您想使用 yieldsAsync
而不是 yields
,否则错误会过早产生(在所有并行 "tasks" 开始之前)并且 async.map()
停止任何进一步处理(使用 yields
基本上将其变成同步操作)。