Wyzwanie
Witam! W przypadku następującej metody Ruby, jak mogę symulować wprowadzanie danych przez użytkownika przy użyciu testu RSpec bez przepisywania metody?Jak napisać test RSpec dla metody Ruby, która zawiera "gets.chomp"?
def capture_name
puts "What is your name?"
gets.chomp
end
Znalazłem a similar question, ale takie podejście wymaga stworzenia za pomocą klasy. Czy RSpec obsługuje stubbing dla metod spoza klasy?
innego dzieła, ale jestem zmuszony do przerobienia metoda
mogę przepisać metodę więc ma zmienną o wartości domyślnej „gets.chomp” jak to:
def capture_name(user_input = gets.chomp)
puts "What is your name?"
user_input
end
teraz mogę napisać test rspec takiego:
describe "Capture name" do
let(:user_input) { "James T. Kirk" }
it "should be 'James T. Kirk'" do
capture_name(user_input).should == "James T. Kirk"
end
end
http://stackoverflow.com/questions/4609872/rspec-commandline-variable-input – ahmet