2011-01-05 10 views
9

私はrspecでテストしようとしているルビースクリプトを持っています。あなたがそう、それは対象物に混入されていることを除いて、Kernel#getsスタブできrspecコマンドライン変数の入力

username = gets.chomp 

答えて

14

:コマンドラインに変数を渡すことが方法は、(すなわち、「取得」するためにRSpecのを経由して、キーボードのデータを入力してください)

例です。それをスタブしてください:

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 
関連する問題