Javascript 如何使用Sinon.js存根事件发射器

Javascript 如何使用Sinon.js存根事件发射器,javascript,mocking,stub,sinon,Javascript,Mocking,Stub,Sinon,我正在尝试删除以下内容: on('complete', function(data){ }); 我只想在第一个参数为“complete”时调用回调 我正在测试的功能还包括: on('error', function(data){ }); 所以我不能只做让步,因为这将触发完整回调和错误回调 如果我不使用sinon,我会通过写以下内容来伪装它 var on = function(event, callback){ if (event === 'complete'){ callback

我正在尝试删除以下内容:

on('complete', function(data){ });
我只想在第一个参数为“complete”时调用回调

我正在测试的功能还包括:

on('error', function(data){ });
所以我不能只做让步,因为这将触发完整回调和错误回调

如果我不使用sinon,我会通过写以下内容来伪装它

var on = function(event, callback){
  if (event === 'complete'){
    callback('foobar');
  };
};
也许你可以使用:

var spy=sinon.spy(窗口“打开”);
on('error',函数(数据){});
on('complete',函数(数据){});
对于(var i=0;i
您可以通过将
收益率与
和args结合使用来缩小出现
收益率的情况,例如

on.withArgs('complete').yields(valueToPassToCompleteCallback);
on.withArgs('error').yields(valueToPassToErrorCallback);

你能给出一个更完整的函数例子吗?
on.withArgs('complete').yields(valueToPassToCompleteCallback);
on.withArgs('error').yields(valueToPassToErrorCallback);