我的女工代码
FactoryGirl.define do
factory :account do
sequence :name do |n|
"Test Account#{n}"
end
end
end
这是我运行factorygirl代码的方法
def create_accounts n=2
n.times do
FactoryGirl.create(:account, subscription_ids: @sub.id.to_s)
end
end
我的问题是,我的FactoryGirl输出第一次是Test Account1, Test Account2
,当我第二次执行时,它创建输出为Test Account3, Test Account4
。但是多次运行时我需要Test Account1, Test Account2
。我怎么能这样做。
感谢您的建议
答案 0 :(得分:1)
FactoryGirl旨在每次拨打#create
时创建新的唯一记录。如果你想保留原始记录集,你应该将它们保存到变量然后返回它们而不是再次运行FactoryGirl.create。
答案 1 :(得分:1)
每次测试后,您还可以使用database_cleaner gem来清理数据库。这有助于防止从数据库状态上升的任何问题。
答案 2 :(得分:0)
我在替换此代码后解决了这个问题
def create_accounts n=1
create_subscription
n.times do |r|
r += 1
FactoryGirl.create(:account, subscription_ids: @sub.id.to_s, name: "Test Account#{r}")
end
end
<强>更新强>
我正在使用黄瓜 - &gt;水豚 - &gt;硒
重置工厂女孩序列
在spec-&gt; support-&gt; reset.rb
中添加此代码module FactoryGirl
def self.reload
self.factories.clear
self.sequences.clear
self.traits.clear
self.find_definitions
end
end
在env.rb中添加
After do
FactoryGirl.reload
end