Изучение Rspec, работающего только с Ruby, а не с Rails. У меня есть сценарий, который работает как ожидалось из командной строки, но я не могу пройти тест.Неожиданное поведение rspec
Соответствующий код:
class Tree
attr_accessor :height, :age, :apples, :alive
def initialize
@height = 2
@age = 0
@apples = false
@alive = true
end
def age!
@age += 1
end
И спецификация:
describe "Tree" do
before :each do
@tree = Tree.new
end
describe "#age!" do
it "ages the tree object one year per call" do
10.times { @tree.age! }
expect(@age).to eq(10)
end
end
end
И ошибка:
1) Tree #age! ages the tree object one year per call
Failure/Error: expect(@age).to eq(10)
expected: 10
got: nil
(compared using ==)
Я думаю, что это все, соответствующий код, пожалуйста, дайте мне знать, если я пропущу что-то в коде, который я разместил. Из того, что я могу сказать, ошибка возникает из области охвата внутри rspec, а переменная @age не передается в тест rspec так, как я полагаю, она должна быть равна нулю при попытке вызвать функцию в тесте.
Спасибо, работает как ожидалось. Моя проблема заключалась в том, что, поскольку метод был вызван в том же блоке, что и rspec «ожидать», Ruby волшебным образом понял бы то, что я просил. Я просто понял, что у меня была одна и та же проблема несколько месяцев назад в другом контексте - я буду помнить в следующий раз. –