删除RSpec和Factory Girl中的重复项

时间:2016-08-17 11:01:45

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

我正在学习使用 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个许可证,也只会创建一个产品。

由于

0 个答案:

没有答案