我可以拥有多个个人资料。所有这些都必须与相同的“api许可证”相关联。 这是我的个人资料工厂:
FactoryGirl.define do
factory :profile do
name "MyString"
after(:build) do |profile|
api_license = ApiLicense.find_by_name('API test name')
api_license ||= FactoryGirl.create(:api_license)
profile.api_license = api_license
end
end
end
我可以使用FactoryGirl.build(:profile)或FactoryGirl.create(:profile)定义多个配置文件,并且所有这些配置文件都附加到相同的api许可证上,这很好。
当我想测试“无api许可证案例”时出现问题。
例如,FactoryGirl.build(:profile,:api_license => nil)不起作用,因为似乎在将nil值分配给api许可证之后执行(:build)之后。
有关于此的任何想法吗?
答案 0 :(得分:0)
在不指定api许可证的情况下创建另一个工厂
FactoryGirl.define do
factory :profile_without_api_license, :class => Profile do
name "MyString"
end
factory :profile do
name "MyString"
after(:build) do |profile|
api_license = ApiLicense.find_by_name('API test name')
api_license ||= FactoryGirl.create(:api_license)
profile.api_license = api_license
end
end
end
无论何时需要无牌照
,请致电工厂profile_without_api_license