我正在学习使用 RSpec 3.4 进行测试, Factory Girl 4.7 用于更换灯具。
我的代码中存在大量重复内容,而且我真的不知道如何使其更清晰。
这是一个代码示例:
user_licence_factory.rb
factory :user_licence do
email 'user@email.com'
trait :standard do
product_id 1
licence_key '12345'
end
end
product_factory.rb
factory :product do
trait :primary_product do
id 1
name 'Primary Product'
end
end
site_licence_factory.rb
factory :site_licence do
email 'user@email.com'
trait :primary_product
product_id 1
uuid 'xxx'
end
end
api_controller_spec.rb
let(:user) { FactoryGirl.create(:user) }
let!(:main_product) { FactoryGirl.create(:product, :primary_product) }
let!(:licence) do
FactoryGirl.create(:user_licence, :standard, email: user.email)
end
let!(:linked_licence) { FactoryGirl.create(:site_licence, :primary_product, email: user.email) }
it 'validates the licence key'
这是一个简化版本,因为我有多个产品和许可证类型,然后是与许可证绑定的产品。
当我需要测试API时,我需要创建用户,属于许可证的产品以及属于该产品的该用户的许可证。 每个用户可以拥有许多许可证,每个许可证属于一个独特的产品。
我想要的工作流程是,创建用户并为用户创建许可证。通过这样做,即使我创建了10个许可证,也只会创建一个产品。
由于