Ich habe viel gesucht und kann das nicht herausfinden, obwohl es einfach scheint. Hier ist ein vereinfachtes Beispiel, was ich tun möchte.Rspec 3.0 Wie man eine Methode vortäuscht, die den Parameter aber ohne Rückgabewert ersetzt?
Erstellen Sie eine einfache Methode, die etwas tut, aber nichts zurückgibt, wie zB:
class Test
def test_method(param)
puts param
end
test_method("hello")
end
Aber in meinem rspec Test ich einen anderen Parameter, wie zum Beispiel „Auf Wiedersehen“ zu übergeben müssen anstelle von „hallo . " Ich weiß, das mit Stubs zu tun hat und verspottet, und ich habe mit Blick auf die Dokumentation aber kann es nicht herausgefunden: https://relishapp.com/rspec/rspec-mocks/v/3-0/docs/method-stubs
Wenn ich tun:
@test = Test.new
allow(@test).to_receive(:test_method).with("goodbye")
es mir sagt, ein Stub Standardwert, aber ich kann nicht herausfinden, wie es richtig geht.
Fehlermeldung:
received :test_method with unexpected arguments
expected: ("hello")
got: ("goodbye")
Please stub a default value first if message might be received with other args as well.
Ich verwende rspec 3.0 und ruft so etwas wie
@test.stub(:test_method)
ist nicht erlaubt.
gefunden werden Ihre Fehlermeldung scheint die Rückseite Ihres Stubs zu sein. –