沙箱存根不同存根 withargs 和回调

sandbox stub different stub withargs and callback

我想要 stub 一个函数,return 一个不同的值和不同的参数,这个函数使用一个回调

例如:

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"});

但存根 return 始终为空,{car:"car"} 我也在尝试使用 :

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

但存根 return 为空。

你能帮忙吗

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

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