我使用工厂女孩来定义这样的对象:
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
中的所有@events
都具有相同的category
。
我想知道为什么以及如何解决它?提前谢谢。
答案 0 :(得分:4)
代码category ['Life', 'Course', 'Speek'].sample
仅运行一次(定义工厂时)。如果您想在每次创建或构建event
时生成新类别,可以使用sequence
,如下所示:
sequence(:category) { ['Life', 'Course', 'Speek'].sample }