Вызов шпиона
Вызов шпиона
Вызов шпиона — это объектное представление отдельного вызова функции, к которой применён шпион, которая может быть подделкой, шпионом, фикстурой или методом-заглушкой.
var spyCall = spy.getCall(n)
Возвращает n-ый вызов. Доступ к отдельным вызовам помогает более детально проверить поведение, когда шпион вызывается более одного раза.
sinon.spy(jQuery, "ajax");
jQuery.ajax("/stuffs");
var spyCall = jQuery.ajax.getCall(0);
assertEquals("/stuffs", spyCall.args[0]);
spyCall.calledOn(obj);
Возвращает true если obj был this для данного вызова. calledOn также принимает соответствие spyCall.calledOn(sinon.match(fn)) (см. соответствия).
spyCall.calledWith(arg1, arg2, ...);
Возвращает true если вызов получил указанные аргументы (и, возможно, другие).
spyCall.calledWithExactly(arg1, arg2, ...);
Возвращает true если вызов получил указанные аргументы и только их.
spyCall.calledWithMatch(arg1, arg2, ...);
Возвращает true если вызов получил соответствующие аргументы (и, возможно, другие). Это ведет себя так же, как spyCall.calledWith(sinon.match(arg1), sinon.match(arg2), ...).
spyCall.notCalledWith(arg1, arg2, ...);
Возвращает true если вызов не получил указанные аргументы.
spyCall.notCalledWithMatch(arg1, arg2, ...);
Возвращает true если вызов не получил соответствующие аргументы. Это ведет себя так же, как spyCall.notCalledWith(sinon.match(arg1), sinon.match(arg2), ...).
spyCall.returned(value);
Возвращает true если функция, к которой применен шпион, вернула указанное value при этом вызове.
Используется глубокое сравнение для объектов и массивов. Используйте spyCall.returned(sinon.match.same(obj)) для строгого сравнения (см. соответствия).
spyCall.threw();
Возвращает true если вызов вызвал исключение.
spyCall.threw("TypeError");
Возвращает true если вызов вызвал исключение указанного типа.
spyCall.threw(obj);
Возвращает true если вызов вызвал предоставленный объект исключения.
spyCall.calledBefore(otherCall)
Возвращает true если вызов шпиона произошёл до другого вызова шпиона.
spyCall.calledAfter(otherCall)
Возвращает true если вызов шпиона произошёл после другого вызова шпиона.
spyCall.calledImmediatelyBefore(otherCall)
Возвращает true если вызов шпиона произошёл до другого вызова, и между ними не было других вызовов шпиона.
spyCall.calledImmediatelyAfter(otherCall)
Возвращает true если вызов шпиона произошёл после другого вызова, и между ними не было других вызовов шпиона.
spyCall.thisValue
Значение this вызова.
spyCall.args
Массив полученных аргументов.
spyCall.callback
Это свойство является удобством для обратного вызова вызова.
Когда последний аргумент вызова является Function, тогда callback будет ссылаться на него. В противном случае это будет undefined.
var spy = sinon.spy();
var callback = function () {};
spy(1, 2, 3, callback);
spy.lastCall.callback === callback;
// true
spyCall.firstArg
Это свойство является удобством для первого аргумента вызова.
var spy = sinon.spy(); var date = new Date(); spy(date, 1, 2); spy.lastCall.firstArg === date; // true
spyCall.lastArg
Это свойство является удобством для последнего аргумента вызова.
var spy = sinon.spy(); var date = new Date(); spy(1, 2, date); spy.lastCall.lastArg === date; // true
spyCall.exception
Вызванное исключение, если таковое имеется.
spyCall.returnValue
Возвращаемое значение.
© 2010–2022 Christian Johansen
Licensed under the BSD License.
https://sinonjs.org/releases/v13/spy-call