我有以下型号:
Student has_many Lesson
Lesson belongs_to Student
我想测试学生可以编辑课程。
以下是我开始做的事情:
Given I am logged in as a student
哪个步骤定义从工厂设置@student对象(见上文)并在其中签名。
FactoryGirl.define do
factory :student do
first_name 'student'
last_name 'last name student'
end
end
此时是我被卡住的地方。我知道我可以为课程创建一个工厂,如下所示:
FactoryGirl.define do
factory :lesson do
name 'maths'
level 'high school'
end
end
但我想将这一教训与已登记的教授联系起来。所以我的问题是......我将如何进入下一步:
答案 0 :(得分:0)
我假设你的课程模型中已经有belongs_to :lecturer
,而你的讲师模型中已经有has_many :lessons
。
首先,我将如下定义您的课程工厂(假设您已经有一个讲师工厂):
FactoryGirl.define do
factory :lesson do
name 'maths'
level 'high school'
association :lecturer
end
end
association :lecturer
行将使用工厂创建讲师并分配到课程。
在您的测试中,您可以执行以下操作,以便将已签名的讲师分配到您创建的课程中:
FactoryGirl.create(:lesson, lecturer: signed_in_lecturer)
希望这有帮助。
PS:我不使用黄瓜,因此您可能需要稍微调整代码以考虑它。