RSpec let, let! の使い分け
RSpec で let, let! の違いは遅延評価というのを聞いてはいたが実際あれ?となる場合に見直すことが多い 方針はいかのほうがいいのだろうか
大きなレイヤー、Controller, Hepler, Modle といった外の枠では let! つまり各 describe で共通に作るものは毎回遅延評価しないでレコードなどを作成するという方針
let は内側の describe や context スコープが限られた場面において使用する
ちょっと合ってるかは分からない
code:spec.rb
describe SomeController do
let!(:user) { create(:user) }
describe '#foo' do
let(:content) { create(:content) }
it do
post :foo, params: { content_id: content.id }
expect(user.content).to eq content
end
end
end