5
學習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'expect'的同一個塊中被調用,Ruby會奇蹟般地理解我在問什麼。我剛剛意識到我在幾個月前在不同的環境中遇到了同樣的問題 - 我將在下一次回憶。 –