RSpecのletにパラメータを受け取って、柔軟にオブジェクトを生成したいときありますよね。そんなときRSpec let parametersとかで検索しても欲しい答えにたどりつけない。そもそもパラメータなんて受け取れない。
そこで思いついたのが、パラメータにしたかった部分をさらにlet化することだ。
let(:hoge) { create(:hoge, :easy) }
上記の:easyの部分が、:easy, :normal, :difficultなど複数のパターンを取るとき、letが引数(パラメータ)を受け取れたらいいのになあと思う。
しかし、引数を受け取ることはできない。我々はRSpecという新しい言語パラダイムの中にいるのだ。
let(:hoge) { create(:hoge, status) }
として、適切な箇所で、
let(:status) { :easy }
というようにして、欲しいlet(:hoge)を作っていく。