Ho cercato molto e non riesco a capirlo anche se sembra semplice. Ecco un esempio semplificato di ciò che voglio fare.Rspec 3.0 Come simulare un metodo che sostituisce il parametro ma senza alcun valore di ritorno?
Creare un metodo semplice che fa qualcosa, ma non restituisce nulla, come ad esempio:
class Test
def test_method(param)
puts param
end
test_method("hello")
end
Ma nel mio test RSpec ho bisogno di passare un parametro diverso, come ad esempio "arrivederci" al posto di "ciao ". So che questo ha a che fare con stub e deride, e ho guardando oltre la documentazione, ma non riesco a capirlo: https://relishapp.com/rspec/rspec-mocks/v/3-0/docs/method-stubs
Se lo faccio:
@test = Test.new
allow(@test).to_receive(:test_method).with("goodbye")
mi dice di spegnere un valore predefinito ma non riesco a capire come farlo correttamente.
Messaggio di errore:
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.
Sto usando RSpec 3.0, e chiamando qualcosa come
@test.stub(:test_method)
non è permesso.
Il tuo messaggio di errore sembra essere il contrario del tuo stub. –