【发布时间】:2016-11-21 00:37:50
【问题描述】:
假设我有以下 Rails 模型并且显示的方法已经过测试。
class Employee < ActiveRecord::Base
has_many :jobs
def total_annual_income
jobs.collect { |j| j.annual_salary}.sum
# Or some other AR magic to do it directly in the database; doesn't matter
end
end
class Job < ActiveRecord::Base
# property :annual_salary
belongs_to :employee
end
现在,假设我要在别处编写调用Employee#total_annual_income 的其他方法。当我使用 FactoryGirl 测试此方法时,是否可以直接使用 total_annual_income 属性设置我的 Employee 工厂,而无需创建相应的 Job 工厂?即,我可以简单地做吗
FactoryGirl.define do
factory :employee1, class: Employee do
id 100
total_annual_income 100000.0
end
end
而不是
FactoryGirl.define do
factory :employee1, class: Employee do
id 100
end
end
# WANT TO OMIT THIS ENTIRE SET OF FACTORIES #
FactoryGirl.define do
factory :employee1_job1, class: Job do
id 100
employee_id 100
annual_salary 60000.0
end
factory :employee1_job2, class: Job do
id 101
employee_id 100
annual_salary 40000.0
end
end
# WANT TO OMIT THIS ENTIRE SET OF FACTORIES #
我对 FactoryGirl 还是有点陌生,所以如果我忽略了一些基本的东西,我深表歉意。
【问题讨论】:
标签: ruby-on-rails unit-testing factory-bot