rspec commandline variable input

前端 未结 1 1965
南笙
南笙 2020-12-19 02:57

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:

相关标签:
1条回答
  • 2020-12-19 03:16

    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
    
    0 讨论(0)
提交回复
热议问题