Ruby on rails 重置';序列';工厂女工考试

Ruby on rails 重置';序列';工厂女工考试,ruby-on-rails,factory-bot,Ruby On Rails,Factory Bot,有人知道如何为FactoryGirl重置序列方法吗 我有一个工厂,它创建了一个任务列表,我希望每次都从1开始。我使用“序列”是因为任务列表是一个关联模型,所以每次使用FactoryGirl时,我都需要增加顺序。创建,直到调用重置。您需要在测试文件的前/后回调中写入FactoryGirl.reload 示例代码片段 before do FactoryGirl.reload . . . end “.”表示其他代码 最好编写FactoryGirl.reload

有人知道如何为FactoryGirl重置序列方法吗


我有一个工厂,它创建了一个任务列表,我希望每次都从1开始。我使用“序列”是因为任务列表是一个关联模型,所以每次使用
FactoryGirl时,我都需要增加顺序。创建
,直到调用重置。

您需要在测试文件的前/后回调中写入
FactoryGirl.reload

示例代码片段

  before do
    FactoryGirl.reload
    .
    .
    .
  end
“.”表示其他代码

最好编写
FactoryGirl.reload,除非FactoryGirl.factories.blank?
以便FactoryGirl不必重新加载



完全重新加载FactoryGirl可能会增加处理测试所需的时间开销;这也是所描述的。

而不是使用
FactoryGirl.reload
,从而产生效果。您可以将唯一值传递给FactoryGirl,以便在FactoryGirl创建新条目时增加这些字段的值

示例代码片段(假设工厂名为Task,此示例代码创建5个任务)


这样一来,新的任务顺序集每次从1开始,您就不必重新加载FactoryGirl。

这似乎在
let
块中工作得很好,可以创建模型对象(或父模型的子对象)的集合,并始终每次都获得相同的结果。
  before do
    (1..5).each do |n|
      FactoryGirl.create(:task,
        name:       "Task_unique_test_name#{n}"
      )
    end
  end