Я не думаю, что это делает много смысла, потому что если вы заменяете окурок с другим шлейфом .. то почему бы вам просто не использовать первую заглушку для достижения того, что вы хотите сделать со второй заглушкой.
В любом случае, sinon.stub(object, "method", func)
выполняет следующие действия в соответствии с Документами:
Заменяет object.method
с func
, завернутым в шпионе. Как обычно, object.method.restore()
; может использоваться для восстановления исходного метода.
Так что, если вы хотите заменить функцию заглушки экземпляра заглушки, то почему бы вам не сделать:
var a = sinon.createStubInstance(MyConstructor);
a.method = sinon.spy(function() { return "Foo Bar"; });
Или, если вы хотите создать заглушку вместо шпиона:
var a = sinon.createStubInstance(MyConstructor);
a.method = sinon.stub();
Перед одним вызовом, a.method = sinon.stub(), важно вызвать a.method.restore(). – Ajitesh
Напротив, так как этот ответ заставил меня на правильном пути. Хотя после того, как на это был дан ответ, «sinon.stub (object,« method », fn)' устарел. Теперь мы можем использовать 'sinon.stub (object," method "). CallsFake (function() {// do stuff});' Смотрите [здесь] (http://sinonjs.org/releases/v2.3.1/stubs #stubcallsfakefakefunction) _Edit: fixed url_ –
@PhilD. Вы правы, но сам вопрос требует «sinon.stub (object,« method », fn)», поэтому я думаю, что не буду включать эту информацию в сам ответ. – g00glen00b