rspec命令行变量输入

时间:2011-01-05 22:31:25

标签: ruby rspec

我有一个ruby脚本我正试图用rspec测试。有没有办法将变量传递给命令行(即通过rspec输入键盘数据到“获取”)

示例:

username = gets.chomp

1 个答案:

答案 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
相关问题