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)
を作っていく。