ブログ変数にアクセスしたいのですが、{ ... } ブロック内ではアクセスしたくありません
let通常スコープの変数定義と考えないようにしてください。letは、同じサンプル グループ内の複数の呼び出しにわたってコード ブロックの結果をキャッシュするための複雑なヘルパー メソッドです。サンプルグループ内letにのみ存在するものはすべて、ブロックlet外の「変数」にアクセスできないことを意味します。it
require 'spec'
describe "foo" do
let(:bar) { 1 }
bar
end
# => undefined local variable or method `bar'
create(:blog)つまり、複数の例で結果を再利用したいだけなら、次のようにできます。
describe "foo" do
let(:blog) { create(:blog) }
it "does something in one context" do
post "/blogs/#{blog.id}/posts"
# specification
end
it "does something else in another context" do
post "/blogs/#{blog.id}/comments"
# specification
end
end