2011-01-05 38 views
9

Tôi có tập lệnh ruby ​​tôi đang thử để kiểm tra bằng rspec. Có cách nào để vượt qua biến dòng lệnh (tức là nhập dữ liệu bàn phím qua rspec để "được")đầu vào biến dòng lệnh rspec

Ví dụ:

username = gets.chomp 

Trả lời

14

Bạn có thể còn sơ khai Kernel#gets, ngoại trừ việc nó được trộn vào đối tượng, vì vậy stub it there:

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 
Các vấn đề liên quan