I have a ruby script I'm trying to test with rspec. Is there a way to pass variables to the commandline (ie enter keyboard data via rspec to "gets")
Example:
username = gets.chomp
You can stub Kernel#gets
, except that it is mixed into the object, so 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With