FactoryGirl为属性

时间:2018-03-07 15:25:30

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

我为Rails4 app写了rspecs,并在工厂别名中面临问题

我有那家工厂:

factory :customer do
    name { "Name-#{rand(9999)}#{rand(9999)}#{rand(9999)}#{rand(9999)}" }
    billing_batch
    company
    end
end


factory :billing_batch do
    batch { "Default-#{rand(9999)}#{rand(9999)}#{rand(9999)}#{rand(9999)}" }
    company
end

如果我为特定公司创建客户 create(:customer, company: @company)如果要创建billing_batch并将其分配给客户(该部分是正确的),还会创建一个额外的公司。

如何在客户工厂结算批次别名公司中指定?

1 个答案:

答案 0 :(得分:0)

我会试试这个:

factory :customer do
    name { "Name-#{rand(9999)}#{rand(9999)}#{rand(9999)}#{rand(9999)}" }
    billing_batch
    company { billing_batch.company || build(:company) }
    end
end

我是afk并且无法测试,但是这样的事情应该有效。