1

私はファクトリーガールを使用して、次のようなオブジェクトを定義します。

factory :event do
  #...
  category ['Life', 'Course', 'Speek'].sample
  #...
end

次に、でspec/models/event_spec.rb、私はこれを持っています:

before(:each) do
  @events = FactoryGirl.create_list(:event, 10, node: school) 
end
  #...
binding.pry   

しかし、pryを使用してを確認した@eventsところ、のすべてが同じeventであることがわかりました。@eventscategory

なぜ、どのように解決するのか知りたいですか?前もって感謝します。

4

1 に答える 1

4

コードcategory ['Life', 'Course', 'Speek'].sampleは1回だけ実行されます(ファクトリが定義されている場合)。eventが作成または構築されるたびに新しいカテゴリを生成する場合はsequence、次のように使用できます。

sequence(:category) { ['Life', 'Course', 'Speek'].sample }
于 2012-11-22T04:14:47.723 に答える