Calling original function from Sinon.js Stub

sinon

Solution

You could use a closure. For example:

var obj = {
    foo: function () {
        console.log('foo');
    }
};

var stub = (function () {
    var originalFoo = obj.foo;
    return sinon.stub(obj, 'foo', function () {
        console.log('stub');
        originalFoo();
    });
}());

JSFiddle

Problem

I'm trying to intercept a call with Sinon.js so I can do some logging and then execute the original call. I don't see a way to do this with sinon.spy(), but I think I can do it with sinon.stub(). I provided a custom function: ``` sinon.stub(servicecore.ServiceWrapper.prototype, '_invoke', function(method, name, body, headers, callback) { console.log('---- ServiceWrapper._invoke called! ----'); // How do I call the original function? }); ``` The problem I have is executing the original function, so my application behaves the same. Any idea?

Original source