ввод переменных командной строки rspec - PullRequest
9 голосов
/ 06 января 2011

У меня есть скрипт ruby, который я пытаюсь проверить с помощью rspec. Есть ли способ передать переменные в командную строку (т.е. вводить данные клавиатуры через rspec для «получает»)

Пример:

username = gets.chomp

1 Ответ

15 голосов
/ 06 января 2011

Вы можете заглушить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...