セットアップデータを含む工場があります。例:Railsユニットテストを実行しているときに、工場のシードにアクセスできない
Factory.define :event do |event|
event.name { Factory.next(:email) }
event.blurb "Test event blurb"
event.association(:owner, :factory => :user)
event.countries Country.all
end
Country.allはルックアップテーブルのすべての国をその特定のイベントに割り当てます。私は私のテストヘルパーにこのラインで私のテストを実行する前に、私は種をロードすることで、すべての国が含まれています
require "#{Rails.root}/db/seeds.rb"
個々のユニットテストを実行するときにこれは素晴らしい作品:
ruby test/unit/event_test.rb
Country.allは何も返しませんがテストを実行すると、次のようになります。
rake test:units
これはなぜ起こっているのですか?
に入れることが必要な工場内のデータにアクセスするように私にも注意してくださいデータベースにアクセスする属性をブロックに配置する必要があることを示しています。 event.countries Country.allは、event.countries {Country.all}になります。 – Tony