沙箱存根不同存根 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"});
我想要 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"});