2013-04-23 13 views

Antwort

20

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 
77

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.

+2

Danke dafür. Haben Sie im Code Bezug auf diese Dokumentation oder den Speicherort? – steel

+2

Dies sollte als richtige Antwort für Schienen 4 RSPEC 3.0 –

+0

Docs für Version Rspec markiert werden 3. https://relisapp.com/rspec/rspec-mocks/docs/configuring-responses/calling-the-original-implementierung – counterbeing

Verwandte Themen