Ответ 1
Вы можете сузить обстоятельства, при которых происходит < <20 > , объединив его с withArgs
, как это...
on.withArgs('complete').yields(valueToPassToCompleteCallback);
on.withArgs('error').yields(valueToPassToErrorCallback);
Я пытаюсь заглушить следующее:
on('complete', function(data){ });
Я хочу только вызвать обратный вызов, если первый параметр "завершен".
Функция, которую я тестирую, также содержит:
on('error', function(data){ });
Таким образом, я не могу просто вызвать причину, которая приведет к срабатыванию как полного, так и обратного вызова ошибки.
Если бы я не использовал синус, я бы подделал его, написав следующее.
var on = function(event, callback){
if (event === 'complete'){
callback('foobar');
};
};
Вы можете сузить обстоятельства, при которых происходит < <20 > , объединив его с withArgs
, как это...
on.withArgs('complete').yields(valueToPassToCompleteCallback);
on.withArgs('error').yields(valueToPassToErrorCallback);
Возможно, вы можете использовать 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');
}