rspec не работает, даже если переменные должны совпадать - PullRequest
0 голосов
/ 29 ноября 2018

Методы в моем классе:

  def get_class_info
    @class_name = get_class_name
  end

  def get_class_name
    puts "Enter the name for your class. Enter 'done' to return to the main prompt."
    input = gets.chomp
    if input.valid_class_name?
      class_name = input.titleize
    elsif input.downcase == "done"
      run
    else
      puts "Invalid class name."
      get_class_name
    end
    class_name
  end

Мой тест:

it "stores the name in the @class_name property" do
  expect(cli.class_name).to eq('Song')
  allow(cli).to receive(:gets) {'song'}
  cli.get_class_info
end

Он проваливается, говоря, что ожидал «Песню», но получил ноль.Если я закомментирую ожидаемую строку и добавлю pry в конец теста, запрос cli.class_name возвращает "Song" !!!

Почему этот тест не пройден ??

Обновление:Хорошо, перемещение линии expect в основание теста, по-видимому, решило ее.Но я запутался, потому что обычно ожидание идет до фактического вызова метода.Я ошибся?Что мне здесь не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...