0

既然这let是一种记忆技术,为什么不能用它来初始化实例变量呢?例如,为什么以下成功?

describe "let method" do
  let(:@bar) {1}
  it "does not define instance variables" do
    expect(@bar).to be_nil
  end
end
4

1 回答 1

3

虽然let通常被称为初始化变量的机制,但它实际上是一种定义辅助方法的机制,如https://www.relishapp.com/rspec/rspec-core/v/2-6/docs/中所述helper-methods/let-and-let并通过以下示例进行演示,该示例通过:

describe "let method" do
  let!(:@bar) {1}
  it "defines helper methods" do
    expect(send(:@bar)).to eq(1)
  end
end
于 2013-10-13T19:12:34.883 回答