読者です 読者をやめる 読者になる 読者になる

pblog

pplog.net を作っている @ppworks こと越川直人(Koshikawa Naoto)のブログ。esa LLCで働いてます(\\( ⁰⊖⁰)/)

FactoryGirlで用意されたデータに望むこと

FactoryGirl というテストデータを用意するためのgemがあります。

読んだ人に、どんなデータが入ることを想定しているか、それが伝わるデータを用意していきたいですね。'MyString'じゃなくて、例えばどんなデータなのかを教えて欲しいのです。

伝わりづらい例

FactoryGirl.define do
  factory :post do
    title  "MyString"
    content "MyString"
  end
end

具体的な例

FactoryGirl.define do
  factory :post do
    title  "pplog開発のコードレビューから学ぶpull requestによる自律的行動とコミュニケーション"
    content "pplogの過去のポエムを複数単語で絞込できるようになりました。"
  end
end
FactoryGirl.define do
  factory :user do
    name 'Koshikawa Naoto' 
    twitter '@ppworks' # あー@付きなのだな、というのが伝わる
  end
end

postの例は、具体的過ぎてかえって分かりづらい可能性があります。

こんなときは、Fakerというgemを使ってダミーデーターに意味を持たせるのもひとつの手です。

FactoryGirl.define do
  factory :post do
    title  { Faker::Name.title } # blockで遅延評価することで毎回ランダムとなる
    content { Faker::Lorem.paragraph }
  end
end

実際このデータを使うと、例えば以下の様なデータが得られます。

post.title # "Direct Marketing Coordinator"
post.content # "Quia reprehenderit autem libero neque doloribus. Aut laboriosam aliquid praesentium quas facilis est. Id quasi quae eveniet reiciendis eum. Omnis corporis qui. Quia et quos soluta vitae ut recusandae."

具体的なデータと、Fakerを使うようなデータを上手く使い分けていきたいです。