データベースにテストデータを入れたい場合、fixture というものを使用します。
以下の様に model を作成した場合、test/fixtures 以下に、xxx.yml が作成されます。
$ rails generate model user invoke active_record create db/migrate/20121204111949_create_users.rb create app/models/user.rb invoke test_unit create test/unit/user_test.rb create test/fixtures/users.ymlこのファイル (test/fixtures/users.yml) に、テストデータを記入します。
以下がその例
# test/fixtures/users.yml <% 1.upto(3) do |n| %> user<%= n %>: name: ユーザー<%= n %> <% end %>
また、アソシエーションで外部キーを設定したい場合は、結び付けたいデータのラベル名を指定します。
# test/fixtures/articles.yml <% 1.upto(3) do |n| %> <% 1.upto(5) do |m| %> article<%= n %>-<%= m %>: user: user<%= n %> #user1ラベルを指定 name: 記事<%= m %> <% end %>
また、この様に外部キーを設定する場合、model に リレーションの設定をしなければなりません (めっちゃハマった.........(´;ω;`)ブワッ)
この場合は、
# models/article.rb class Article < ActiveRecord::Base belongs_to :user # この記述が必要!! endのように、belongs_toを指定します。
この様にして、fixtureファイルを作成したら、rake db:fixtures:load コマンドを実行
$ rake db:fixtures:load
これでテストデータが挿入されます。