Spec-Zone.ru › Sinon.JS 15

Вызов шпиона

Вызов шпиона

Вызов шпиона — это объектное представление отдельного вызова шпионяемой функции, которая может быть фейком, шпионом, стабом или методом-моком.

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/v15/spy-call

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API