我想存根一个函数并使用不同的args返回不同的值,这个函数使用一个回调
例如:
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。
你可以帮忙吗?答案 0 :(得分:0)
如果你的意思是存根应该使用这些值调用回调,你应该使用yields
而不是returns
(前者将调用它接收的第一个函数参数,在这种情况下是回调,使用fixtures;后者实际上会使函数返回这些值,这在回调的情况下不是很有用):
stub.onCall(0).yields(null, {car:"car"});
stub.onCall(1).yields(null, {house:"house"});