Я использую rspec для тестирования stdout и stdin в программе, в которой я постоянно запрашиваю у пользователя ввод команд.
Я пытался выполнить этот ответ, но не смог сделать этоработать и все равно не рекомендуется.
Код, который я тестирую:
def prompt_input
puts "Input:"
while user_input = $stdin.gets.chomp
puts "Output:"
puts "Created a parking lot with 6 slots"
puts "Input:"
end
end
И тест, который я написал:
describe '#prompt_input' do
it 'sends a prompt to terminal' do
expect(STDOUT).to receive(:puts).with("Input:")
allow(STDIN).to receive(:gets) { 'create_parking_lot 3' }
expect(STDOUT).to receive(:puts).with("Output:", "Created a parking lot with 3 slots", "Input:")
end
end
Редактировать: изменил код на чтовы сейчас видите.Все еще не работает