factory_botを使っていて、traitっていうものが出てきました。よくわかっていませんでした。ちょっとそのことについて、簡単にまとめておきたいと思います。
factorybotのtraitってなんぞ?
結論
結論から言うとfactorybotやspecをdryに書くための機能です。
例えば、ほとんど一緒だけど、ある別のステータスを持たせたいfactoryデータを作りたい時に便利です。
ちょっと詳しく
factory_botのtraitですが、結論から言うとfactoryをdryにわかりやすく書く機能です。
例えばrspecでテストを書くときに、taskモデルがあったとして、そのタスクのnot doneタスクと、doneのタスクをテストしたいとします。
その場合にどうやってfactoryを書くかってことなんですが、ほぼ同じようなパラメーターのtaskのfactoryを2つ書かなくてはいけませんよね。
そんな時、traitを使うと便利です。ある変更したいステータスだけの値を更新することができます。細かく書くと色々と出てきてしまうの、別の記事を参照してください。概念的なところだけを説明しました。
では!