FactoryGirl 覆盖父 class 属性子 class

FactoryGirl override parent class attribute subclass

我想使用子class 工厂覆盖父class。例如,我想更改 subclass 的子域,以便它从父 class.

覆盖它

campaign.rb 文件

FactoryGirl.define do
  factory :campaign do
    subdomain 'thrifty'
  end
end

photo_upload_campaign.rb 文件

FactoryGirl.define do
  factory :photo_upload_campaign, parent: :campaign do
    subdomain 'weekender' 
  end
end

步骤定义文件

Given(/^there's a subdomain for a photo upload campaign campaign$/) do
  @campaign = create(:campaign)
  @photo_upload = create(:photo_upload_campaign)
  if !@campaign.subdomain.present?
    fail(ArgumentError.new('Where is the subdomain?'))
  end
end

When(/^I visit the photo upload campaign microsite subdomain url$/) do
  visit_with_subdomain microsite_home_path, subdomain: @photo_upload.subdomain
end

我可以创建一个工厂测验活动,它从活动中获取所有属性

FactoryGirl.define do
  factory :quiz_campaign do
    subdomain 'weekender'
  end
end