Я много искал и просто не могу понять это, хотя это кажется простым. Вот упрощенный пример того, что я хочу сделать.
Создайте простой метод, который что-то делает, но ничего не возвращает, например:
class Test
def test_method(param)
puts param
end
test_method("hello")
end
Но в моем тесте rspec мне нужно передать другой параметр, например, «до свидания» вместо «привет». Я знаю, что это связано с заглушками и макетами, и я просматривал документацию, но не могу понять: https://relishapp.com/rspec/rspec-mocks/v/3-0/docs/method-stubs
If I do:
@test = Test.new
allow(@test).to_receive(:test_method).with("goodbye")
он говорит мне заглушить значение по умолчанию, но я не могу понять, как это сделать правильно.
Сообщение об ошибке:
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.
Я использую rspec 3.0 и вызываю что-то вроде
@test.stub(:test_method)
не разрешено.