Ruby on Rails (3.x >= 3.2.9) のためのブログです (どっちかというと社内ブログ的な感じで、基礎から書いてきます) 。
Comments

データベースにテストデータを入れたい場合、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

これでテストデータが挿入されます。

Categories: , , , ,

Leave a Reply