【问题标题】:Why do I get the same object when I use create_list in the FactoryGirl and the sample method?为什么我在 FactoryGirl 和示例方法中使用 create_list 时会得到相同的对象?
【发布时间】:2012-11-22 04:00:36
【问题描述】:

我使用工厂女孩来定义这样的对象:

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时,我发现@events中的所有event都有相同的category。

我想知道为什么以及如何解决它?提前致谢。

【问题讨论】:

    标签: ruby-on-rails rspec factory-bot


    【解决方案1】:

    代码category ['Life', 'Course', 'Speek'].sample 只运行一次(定义工厂时)。如果您想在每次创建或构建event 时生成一个新类别,您可以使用sequence,如下所示:

    sequence(:category) { ['Life', 'Course', 'Speek'].sample }
    

    【讨论】:

    • 哦,好的,非常感谢~
    • 不要创建序列,只需在样本周围放置一个块:category { ['Life', 'Course', 'Speek'].sample }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多