今回の目的
factory_bot導入をできるように手順をまとめる
手順
Gemのインストール
ターミナル
group :development, :test do
gem 'rspec-rails'
gem 'factory_bot_rails'
end
ポイントは「rspec-rails」と同じグループに設定すること。
ディレクトリとファイルの作成
specディレクトリ直下に「factories」というディレクトリを作成
作成するインスタンス(複数形)のファイル名でRubyのファイルを作成
*Productクラスのインスタンスを作る場合、「products.rb」を作成
テストコードの記述例
products.rb
FactoryBot.define do
factory :product do
name {"apple"}
description {"美味しい"}
price {120}
end
end
buildメソッドとcreateメソッド
products.rb
product = FactoryBot.build(:product)
product = FactoryBot.create(:product)
上記のように記述することにより、インスタンスの作成ができる。
createの場合はテスト用のDBに値が保存される。しかしテストが終わるとロールバックされる。
factory_botの記法の省略
下記ファイルを編集することにより、インスタンス作成時に「FactoryBot」の記述が不要になる。
spec/rails_helper.rb
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods #追記
end
products.rb
product = build(:product)
値を変更しインスタンスを作成したい場合
products.rb
product = build(:product, name:"orenge")
以上です。