【问题标题】:Second sinon stub not called in async parallel第二个 sinon 存根未在异步并行中调用
【发布时间】:2015-09-08 08:06:53
【问题描述】:

我正在尝试测试以下代码:

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...
})

我正在通过存根存档和映射函数来测试处理错误功能是否正常工作,以便其中一个返回错误:

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

我遇到的问题是archiveStub 似乎没有被使用,因为我从该函数调用的函数中收到错误(如果调用该函数,这是可以预料的,因为我没有初始化变量用于此测试)。

我有另一个测试,其中存档函数返回错误而不是映射函数,并且该测试通过而似乎没有调用任何一个存根方法而不是存根。

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

【问题讨论】:

    标签: node.js sinon


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 2021-07-26
      • 2018-02-23
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多