2017-08-03 60 views
0

我想砸自己的功能,並返回不同的ARGS不同的價值,這機能的研究使用一個回調沙箱存根不同存根withargs和回調

例如:

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

但短線回報總是空,{車: 「汽車」} 我也嘗試使用:

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

但存根返回null。

您能否爲您提供幫助。

回答

0

如果你的意思是短線應該調用這些值的回調,你應該使用yields代替returns(前者會調用它接收到的第一個函數參數,在這種情況下回調,與燈具;後者將實際上使函數返回那些值,這在回調的情況下,是不是非常有用):

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