我有有規格:rspec的 - 我怎麼能是指一個讓變量在它描述
describe "can translate" do
let(:from){591}
it "#{from}" do
expect(Translator.three_digits(from)).to eq 'five hundred ninety two'
end
end
但591是硬編碼的重複,我想消除...
因此如何我可以在it
描述中參考from
?
我試過有let(:from){591}
,然後使用it "#{@from}"
但是,這並不表明它
我使用it "#{from}"
也嘗試過,但因爲它是尋找一個局部範圍的變量,它給出了一個錯誤undefined local variable or method 'from' for #<Class:0x00000001bc4110> (NameError)
。
我能避免所有的常量這些範圍問題,即
describe "can translate" do
FROM=592
it "#{FROM}" do
expect(Translator.three_digits(FROM)).to eq 'five hundred ninety two'
end
end
有了,當我得到一個eror我真正得到A ruby file called translator.rb can translate 591
(或任何數字,這是它打印出來不像我都嘗試的關鍵與變量)。 ` 但這似乎是一個糟糕的做法。我寧願儘可能地避免常量,我想連續對多個值進行測試,所以我需要一些我可以根據情況而改變的東西,而CONSTANT似乎不合適。
我也嘗試過之前:所有與本地和實例變量,但沒有成功。
如果我對它進行了硬編碼,並且將591作爲文本並且測試失敗,那麼591會打印出我想要的內容。但是,我無法得到相同的結果,雖然我也在測試中使用了任何變量。