LoginSignup
1

More than 3 years have passed since last update.

factory_bot導入手順をまとめる

Posted at

今回の目的

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")

以上です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1