RSpec要求用户输入

时间:2019-02-25 21:44:31

标签: ruby rspec user-input

我有两个问题。给定下面的ruby代码,您将在RSpec中编写什么样的测试,以及在运行测试以不断询问用户输入时如何避免?我尝试了许多方法,例如:

  1. allow($ stdout)
  2. allow(内核)
  3. stub(:gets)
  4. STDOUT.should_receive(:puts).with(“ exit”)
  5. 允许($ stdin)。接收(:gets).and_return('no_gets')
  6. allow_any_instance_of(内核)。接收(:gets).and_return('退出')

但以上方法均无效。在测试中,不断要求我提供用户输入。

 class EchoApp
   def greeting
     while(true)
      puts "Say something:"
      user = gets.chomp
      break if user == 'exit'
    end
   return "Goodbye!"
  end
end

1 个答案:

答案 0 :(得分:1)

您的建议应切实可行。但是还有另一种选择。

6.7MB

让我知道这是否无效。