LoginSignup
3
3

More than 5 years have passed since last update.

FactoryGirls を rails console から呼び出す

Posted at

日常的に rails アプリを開発している時、「開発や動作の確認用にデータがたくさん欲しいな」と思うことがあるかと思います。

そんな時は、コンソールからデータを作成してやるのが常套句ですが……

bundle exec rails console
[1] pry(main)> tweet = Tweet.new
[2] pry(main)> tweet.body = "Hello, My Twitter Clone!"
[3] pry(main)> twwet.save!

現実のデータって、こんなに優しくありませんよね?

  • user_id が必要!? ってことは、 User インスタンスも作らなくちゃ……
  • User には認証方式も必要なのか? 何? カテゴリも?
  • 一体どれくらい依存関係があるんだ……

RSpec や Test::Unit で fixture を使っている時も同じような問題が起き、解決策として FactoryGirl が登場しました。
この FactoryGirl 、実はすごく簡単にコンソールから使用できるんです!

bundle exec rails console
[1] pry(main)> require "factory_girl_rails"
[2] pry(main)> FactoryGirl.create_list(:tweets)

そう。 require するだけ!
あとは簡単に、良い感じのデータを開発環境でどんどん作れます!

:point_down: こんな感じの spec を用意しておいて、factory を単体で動かせるように保っておけば、テストも開発もグンとしやすくなるかもしれませんね!

describe "FactoryGirl の factory" do
  FactoryGirl.factories.each do |factory|
    it "ファクトリ '#{factory.name}' は単体で呼び出したとき、データ整合性がバッチリ" do
      expect(FactoryGirl.build(factory.name.to_sym)).to be_valid
    end 
  end 
end
3
3
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
3
3