mock example calledonce javascript mocking stub sinon

javascript - example - ¿Cómo corto un emisor de evento con Sinon.js?



sinon stub() (2)

Estoy intentando resumir lo siguiente:

on(''complete'', function(data){ });

Solo quiero llamar a la devolución de llamada si el primer parámetro es ''completo''.

La función que estoy probando también contiene:

on(''error'', function(data){ });

Por lo tanto, no puedo limitar el rendimiento porque disparará tanto la devolución de llamada completa como la de error.

Si no usaría sinon, lo falsificaría escribiendo lo siguiente.

var on = function(event, callback){ if (event === ''complete''){ callback(''foobar''); }; };


Tal vez puedas usar un 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''); }


Puede reducir las circunstancias bajo las cuales se produce un yield al combinarlo con a con withArgs como tal ...

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