Spy call

A spy call is an object representation of an invididual call to a spied function, which could be a fake, spy, stub or mock method.

var spyCall = spy.getCall(n)

Returns the nth call. Accessing individual calls helps with more detailed behavior verification when the spy is called more than once.

sinon.spy(jQuery, "ajax");
jQuery.ajax("/stuffs");
var spyCall = jQuery.ajax.getCall(0);

assertEquals("/stuffs", spyCall.args[0]);

spyCall.calledOn(obj);

Returns true if obj was this for this call. calledOn also accepts a matcher spyCall.calledOn(sinon.match(fn)) (see matchers).

spyCall.calledWith(arg1, arg2, ...);

Returns true if call received provided arguments (and possibly others).

spyCall.calledWithExactly(arg1, arg2, ...);

Returns true if call received provided arguments and no others.

spyCall.calledWithMatch(arg1, arg2, ...);

Returns true if call received matching arguments (and possibly others). This behaves the same as spyCall.calledWith(sinon.match(arg1), sinon.match(arg2), ...).

spyCall.notCalledWith(arg1, arg2, ...);

Returns true if call did not receive provided arguments.

spyCall.notCalledWithMatch(arg1, arg2, ...);

Returns true if call did not receive matching arguments. This behaves the same as spyCall.notCalledWith(sinon.match(arg1), sinon.match(arg2), ...).

spyCall.returned(value);

Returns true if spied function returned the provided value on this call.

Uses deep comparison for objects and arrays. Use spyCall.returned(sinon.match.same(obj)) for strict comparison (see matchers).

spyCall.threw();

Returns true if call threw an exception.

spyCall.threw("TypeError");

Returns true if call threw exception of provided type.

spyCall.threw(obj);

Returns true if call threw provided exception object.

spyCall.thisValue

The call’s this value.

spyCall.args

Array of received arguments.

spyCall.callback

This property is a convenience for a call’s callback.

When the last argument in a call is a Function, then callback will reference that. Otherwise it will be undefined.

var spy = sinon.spy();
var callback = function () {};

spy(1, 2, 3, callback);

spy.lastCall.callback === callback;
// true

spyCall.lastArg

This property is a convenience for the last argument of the call.

var spy = sinon.spy();
var date = new Date();

spy(1, 2, date);

spy.lastCall.lastArg === date;
// true

spyCall.exception

Exception thrown, if any.

spyCall.returnValue

Return value.