【问题标题】:sandbox stub different stub withargs and callback沙箱存根不同的存根带有参数和回调
【发布时间】:2017-08-03 12:12:46
【问题描述】:

我想存根一个函数并使用不同的参数返回一个不同的值,这个函数使用一个回调

例如:

function saop (){
 saop.get('car',"http://webservice.com",function (err, result) {});
// (null, {car:"car"}) 
 saop.get('house',"http://webservice.com",function (err, result) {});
// (null, {house:"house"})
}

我正在尝试使用这个:

var stub = sandbox.stub(saop, 'get');

stub.onCall(0).returns(null, {car:"car"});
stub.onCall(1).returns(null, {house:"house"});

但存根总​​是返回 null,{car:"car"} 我也在尝试使用:

var stub = sandbox.stub(saop, 'get');
 stub.withArgs('car').returns(null, {car:"car"});
 stub.withArgs('house').returns(null, {house:"house"});

但存根返回 null。

你能帮忙吗?

【问题讨论】:

    标签: javascript unit-testing sinon stub


    【解决方案1】:

    如果你的意思是存根应该用这些值调用回调,你应该使用yields而不是returns(前者将调用它收到的第一个函数参数,在这种情况下是回调,带有固定装置;后者实际上会使函数 return 那些值,这在回调的情况下不是很有用):

    stub.onCall(0).yields(null, {car:"car"});
    stub.onCall(1).yields(null, {house:"house"});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 2016-09-30
      • 1970-01-01
      相关资源
      最近更新 更多