Вы можете использовать mocks и вызывать метод более одного раза, перечислив несколько значений в методе and_return()
.Они будут возвращены, по одному на каждый вызов, в указанном порядке.
STDIN.should_receive(:read).and_return("Your string")
STDIN.should_receive(:read).and_return("value1", "value2", "value3")
Вы можете делать подобные вещи с STDOUT:
STDOUT.should_receive(:puts).with("string")
См. Документацию по RSpec для получения дополнительной информации.