我正在使用rspec在一个程序中测试stdout和stdin,在该程序中,我会不断提示用户输入命令。
我尝试遵循this的答案,但我无法使其正常工作,并且无论如何它都已被弃用。
我正在测试的代码:
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
编辑:将代码更改为当前看到的代码。仍然无法正常工作