Die Relish-Dokumente wurden gesucht, aber in RSpec wurde keine Möglichkeit zum Entfernen gefunden.Gibt es eine Möglichkeit, in RSpec zu entfernen?
Ist das möglich?
Die Relish-Dokumente wurden gesucht, aber in RSpec wurde keine Möglichkeit zum Entfernen gefunden.Gibt es eine Möglichkeit, in RSpec zu entfernen?
Ist das möglich?
Der Code rspec-mock zeigt an, dass Sie die Methode unstub
aufrufen können. Ich zitiere:
# 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
Mit neuen expect
Syntax, unstub
veraltet. Sie tun können:
# stub
allow(SomeClass).to receive(:a_method)
# do something...
# unstub
allow(SomeClass).to receive(:a_method).and_call_original
Wenn die ersten allow
enthalten .with
oder ein Block, ich glaube es immer noch auf den nächsten Anruf führen werde, so dass die nächsten allow
nicht die Dinge klar.
Danke dafür. Haben Sie im Code Bezug auf diese Dokumentation oder den Speicherort? – steel
Dies sollte als richtige Antwort für Schienen 4 RSPEC 3.0 –
Docs für Version Rspec markiert werden 3. https://relisapp.com/rspec/rspec-mocks/docs/configuring-responses/calling-the-original-implementierung – counterbeing
Können Sie erklären, warum Sie etwas aufheben wollen? Vielleicht gibt es einen besseren Ansatz. –