鉴于let
是一种记忆技术,为什么不能用它来初始化实例变量?例如,为什么以下成功?
describe "let method" do
let(:@bar) {1}
it "does not define instance variables" do
expect(@bar).to be_nil
end
end
答案 0 :(得分:3)
虽然let
通常被称为初始化变量的机制,但它实际上是一种定义帮助方法的机制,如{{ 3}}并通过以下示例演示,该示例通过:
describe "let method" do
let!(:@bar) {1}
it "defines helper methods" do
expect(send(:@bar)).to eq(1)
end
end