FactoryGirl 条件属性

FactoryGirl conditional attribute

我有一个名为 type 的工厂属性。现在它适用于一个字符串。我怎样才能做到这一点,所以我使用同一个工厂,但将它与另一个字符串 type 'Quiz' 一起使用。所以,我想测试 type 'PhotoUploadCampaign' 然后 运行 该工厂的 PhotoUpload 属性。如果 type 'Quiz' 那么 运行 该工厂的测验属性。

工厂活动文件

FactoryGirl.define do
  factory :campaign do    
    type 'PhotoUploadCampaign'
  end
end

活动步骤文件

Given(/^there's a photo upload campaign$/) do
  @campaign = create(:campaign)
end

对于工厂女孩,您可以在创建或建造工厂时指定属性。

您现在的定义只是默认设置。

在你的规范中你可以做到

@campaign = create(:campaign, type: 'Quiz')

这将执行与之前相同的逻辑,但使用 Quiz 而不是 PhotoUploadCampaign