假設我有以下Rails模型,並且顯示的方法已經過測試。現在你能明確地在FactoryGirl中輸入一個方法的返回值嗎?
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還在,所以如果道歉,我忽略了一些基本的東西。