Использование Rspec для проверки STDIN и STDOUT при непрерывном запросе пользовательского ввода на терминале - PullRequest
0 голосов
/ 03 февраля 2019

Я использую 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

Редактировать: изменил код на чтовы сейчас видите.Все еще не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...