0
0

More than 3 years have passed since last update.

【FactoryBot】【trait】を使って、わかりやすくテストデータをつくる

Posted at

はじめに

Traitsを使うと、

spec/requests/api_spec.rb
 let!(:words_starting_with_ruby) { create_list(:product_suggest, 6, :ruby) }
  let!(:word_starting_with_rails) { create(:product_suggest, :rails) }
  let!(:api_key) { Rails.application.credentials.api[:API_KEY] }

上の

create_list(:product_suggest, 6, :ruby)

create(:product_suggest, :rails)

の:ruby, :railsといったようにステータスを指定してテストデータを作ることができ、使いやすい。

定義

spec/factories/product_suggests.rb
FactoryBot.define do
  factory :product_suggest, class: "Product::Suggest" do
    trait :ruby do
      sequence(:keyword, "ruby-keyword_1")
    end

    trait :rails do
      keyword { "rails-keyword" }
    end
  end
end
trait :ruby do
  sequence(:keyword, "ruby-keyword_1")
end

などのようにステータスごとの内容を定義する。

ちなみに、

sequence(:keyword, "ruby-keyword_1")

とすると、データ作成毎に末尾の数値がインクリメントする。

終わりに。

最後まで読んで頂きありがとうございます:bow_tone1:
転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございました。

0
0
0

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
0
0