2017年10月24日
factory_girlがfactory_botに名前変更!使用方法の解説など


はじめに
factory_girlはRubyでテストデータを生成するのに有名なプラグインでした。
日本時間で10/22ですかね、factory_girlがfactory_botにリネームされたようです。
ここでは深い話はしませんが、様々な考慮が必要なのでネーミングって難しいですね。
factory_girl改めてfactory_girlを使用することで、Rspecなどでテストデータ生成を便利にすることができます。
Test::Unitでも可能ですが、今回はRSpecでの使用手順をお伝えします。
factory_botの使い方
Gemのインストール
まずはGemfileにgemを指定して bundle install
します。
group :development, :test do
gem "factory_bot_rails", "~> 4.0"
end
factory_botの設定
また spec/support/factory_bot.rb
に設定します。
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
end
POINT!!
既にfactory_girlが入っている場合、spec/support/factory_girl.rb上に config.include FactoryGirl::Syntax::Methods となっているはずです。
また、bundle updateをした際に挙動がおかしくなるようなのでご注意ください。
準備はこれで完了です。
テストデータの定義
例えばusers.rbというモデルがあった場合、このようにfactories配下に定義を書くことができます。
spec/factories/users.rb
FactoryBot.define do
factory :user do
first_name "Taro"
last_name "Yamada"
admin false
end
end
テストデータを使ってみよう
使い方は至ってシンプルです。
user = build(:user)
user.first_name
にTaro 、 last_name
にYamadaが入っているデータが作られます。
ちなみにbuildなので保存されない挙動となります。
このようにcreateすることでテストユーザーデータが保存されます。
user = create(:user)
また、定義したデータを上書きしたいケースにはこのように対応します。
user = build(:user, first_name: “Takashi”)
そして大量にデータを作りたいケースなどもあるかと思います。
閾値を試したいケースなどですね。
そんなときはこのように、create_list
の引数に繰り返し数を持たせることで一気にデータ作成が可能です。
created_users = create_list(:user, 25)
まとめ
factory_girl
改め、factory_bot
を使用することでテストデータの作成をより便利にすることができます。
既に factory_girl
が入っているまた、一旦アンインストールして再度 factory_bot
をインストールしたほうが良いでしょう。
詳細はこちらの Issueをご覧ください。
また今回RSpec自体の説明は割愛しましたが、今後RSpecについても詳細の説明をしていきます。
のお仕事に関するご相談
Bageleeの運営会社、palanではに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
3
4
関連記事

2022年6月14日
Figmotionの使い方

2022年5月13日
Reactでオセロゲームを作る

2022年3月25日
【Spoke】アプリ不要!WebだけでVR空間を作ろう!

2022年2月25日
palanXRサイトリニューアルの流れをご紹介します!

2021年12月25日
vanilla-extractで型安全なCSSを書こう!

2021年12月24日
Miroを使ったプロジェクトの振り返り
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへ
palanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー

Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

はらた エンジニア
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。

ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。

Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。

ゲスト bagelee

かっきー

まりな

suzuki
miyagi

ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。

いわもと
デザイナーをしています。 好きな食べ物はラーメンです。

taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。

kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya

aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。

Kainuma
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

sugimoto
asama
ando
iwasawa ayane

oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!