我有一个ruby脚本我正试图用rspec测试。有没有办法将变量传递给命令行(即通过rspec输入键盘数据到“获取”)
示例:
username = gets.chomp
答案 0 :(得分:15)
你可以存根Kernel#gets
,除了它被混合到对象中,所以把它存在那里:
class Mirror
def echo
print "enter something: "
response = gets.chomp
puts "#{response}"
end
end
require 'rspec'
describe Mirror do
it "should echo" do
@mirror = Mirror.new
@mirror.stub!(:gets) { "phrase\n" }
@mirror.should_receive(:puts).with("phrase")
@mirror.echo
end
end