ruby - tiene - desatascador de tuberias potente
¿Hay alguna manera de desatascar en RSpec? (2)
El código rspec-mock indica que puede llamar al método de unstub
. Yo cito:
# Removes a stub. On a double, the object will no longer respond to
# `message`. On a real object, the original method (if it exists) is
# restored.
#
# This is rarely used, but can be useful when a stub is set up during a
# shared `before` hook for the common case, but you want to replace it
# for a special case.
def unstub(message)
::RSpec::Mocks.space.proxy_for(self).remove_stub(message)
end
Busqué los documentos de Relish, pero no encontré la manera de quitarlos en RSpec.
es posible?
Con la nueva sintaxis expect
, el unstub
está en desuso. Tu puedes hacer:
# stub
allow(SomeClass).to receive(:a_method)
# do something...
# unstub
allow(SomeClass).to receive(:a_method).and_call_original
Si el primer .with
contiene .with
o un bloque, creo que continuará con la próxima llamada, por lo que el próximo allow
no borrará esas cosas.