我使用 FactoryBot 的sequence方法生成唯一值,這在測驗中效果很好。
例子:
FactoryBot.define do
factory :my_factory do
sequence(:label) { |n| "Label #{n}" }
end
end
但是,如果我嘗試在我的開發環境中生成記錄,我會遇到很多錯誤,因為序列計數器已重置。我很想手動設定它,比如set_sequence(123456),有可能嗎?
uj5u.com熱心網友回復:
序列接受一個種子值引數,所以這樣的事情應該作業
FactoryBot.define do
factory :my_factory do
sequence(:label, 123456) { |n| "Label #{n}" }
end
end
您現在可以在配置中設定起始值
# config/environments/production.rb
Rails.application.configure do
config.x.factory_bot.sequence_seed_value = 1234
end
# config/environments/test.rb
Rails.application.configure do
config.x.factory_bot.sequence_seed_value = 0
end
FactoryBot.define do
factory :my_factory do
sequence(:label, Rails.configuration.x.factory_bot.sequence_seed_value) { |n| "Label #{n}" }
end
end
https://github.com/thoughtbot/factory_bot/blob/893eb67bbbde9d7f482852cc5133b4ab57e34b97/lib/factory_bot/sequence.rb#L13 https://github.com/thoughtbot/factory_bot/blob/893eb67f482853eb67f48283eb67f48283eb67b4b37b37b37b37b32spec/893eb67fb4b82852834b34b28528528528523 https://guides.rubyonrails.org/configuring.html#custom-configuration
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314944.html
