我试图将以下内容存根:
on('complete', function(data){ });
如果第一个参数是'complete',我只想调用回调。
我正在测试的功能还包含:
on('error', function(data){ });
所以我不能只做导致触发完整和错误回调的导致。
如果我不使用sinon,我会通过编写以下内容来伪造它。
var on = function(event, callback){
if (event === 'complete'){
callback('foobar');
};
};
答案 0 :(得分:7)
您可以通过将yield
与withArgs
结合起来缩小发生on.withArgs('complete').yields(valueToPassToCompleteCallback);
on.withArgs('error').yields(valueToPassToErrorCallback);
的情况......
For Each cp As String In Me.ContentPlaceHolders
For Each ctl As Control In Me.FindControl(cp).Controls
If adminonly.Contains(ctl.ID) Then
ctl.Visible = False
End If
Next
Next
答案 1 :(得分:0)
也许您可以使用spyCall:
var spy = sinon.spy(window, 'on');
on('error', function(data){ });
on('complete', function(data){ });
for(var i=0; i < spy.callCount; i++){
var call = spy.getCall(i);
if(call.args[0] === 'complete') call.args[1]('foobar');
}