挑战
你好!对于以下 Ruby 方法,如何在不重写方法的情况下使用 RSpec 测试模拟用户输入?
def capture_name
puts "What is your name?"
gets.chomp
end
我发现了一个类似的问题,但是这种方法需要使用一个类来创建。RSpec 是否支持对不在类中的方法进行存根?
不同的作品,但我不得不重写方法
我可以重写该方法,使其具有默认值为“gets.chomp”的变量,如下所示:
def capture_name(user_input = gets.chomp)
puts "What is your name?"
user_input
end
现在我可以像这样编写一个 RSpec 测试:
describe "Capture name" do
let(:user_input) { "James T. Kirk" }
it "should be 'James T. Kirk'" do
capture_name(user_input).should == "James T. Kirk"
end
end