データベースにテストデータを入れたい場合、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
この様にして、fixtureファイルを作成したら、rake db:fixtures:load コマンドを実行
$ rake db:fixtures:load
これでテストデータが挿入されます。