Spec-Zone.ru › Sinon.JS 7

Вызов шпиона

Вызов шпиона

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

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.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/v7.5.0/spy-call

Spec-Zone.ru

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