Вызов шпиона
Вызов шпиона
Вызов шпиона — это объектное представление отдельного вызова функции «шпиона», которая может быть подделкой, шпионом, заглушкой или методом-заглушкой.
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 был вызван для данного вызова. 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
Это свойство — удобный способ доступа к 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–2020 Christian Johansen
Licensed under the BSD License.
https://sinonjs.org/releases/v9.2.2/spy-call