2017年10月に、Rubyのライブラリ(gem)である"Factory Girl"が"Factory Bot"に変わりました。
名前が変わった理由が以下のページに記載されていたので、翻訳してみます。
プロジェクト名の歴史
Factory Girl
このライブラリはもともと2008年に"Factory Girl"という名前でリリースされました。
この名前を選んだ理由は書籍「デザインパターン」に載っていたファクトリメソッドパターンとオブジェクトの母(Object Mother)パターンに従っていたことと、ローリング・ストーンズに同じ名前の曲があったためです。
Factory Bot
"Factory Girl"という名前はこのライブラリの存在を知った一部の開発者を混乱させました。また、不快で問題があるように感じる人々もいました。そのため、2017年10月に私たちはこのライブラリの名前を"Factory Bot"に変更しました。
(翻訳ここまで)
名前が変更される詳しい経緯については以下のissueも参考になります。
参考:Factory GirlからFactory Botへ移行する方法
Factory BotとFactory Girlは名前が違うだけで基本的に同じものです。
Railsプロジェクトの場合、移行したい場合は次のようにします。
1. Gemfileを更新してbundle install
- gem 'factory_girl_rails'
+ gem 'factory_bot_rails'
$ bundle install
2. プロジェクト内のFactoryGirlをFactoryBotに置換
- FactoryGirl.define do
+ FactoryBot.define do
UPGRADE_FROM_FACTORY_GIRL.md にある通り、Railsのプロジェクトルートディレクトリ内で、下記コマンドを打つのが楽です。
grep -e FactoryGirl **/*.rake **/*.rb -s -l | xargs sed -i "" "s|FactoryGirl|FactoryBot|"
3. プロジェクト内のfactory_girlをfactory_botに置換
- g.fixture_replacement :factory_girl, dir: "spec/factories"
+ g.fixture_replacement :factory_bot, dir: "spec/factories"
こちらも下記コマンドが楽です。
grep -e factory_girl **/*.rake **/*.rb -s -l | xargs sed -i "" "s|factory_girl|factory_bot|"
4. テストがすべてパスすることを確認
$ rails spec