1

我有以下型号:

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

但我想将该课程与已登录的教授联系起来。所以我的问题是......我将如何进行下一步:

  1. 创建与已登录学生关联的课程
  2. 编辑课程(我需要知道 id 才能访问课程/:id 页面)
4

1 回答 1

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:我不使用黄瓜,因此您可能需要稍微调整代码以将其考虑在内。

于 2012-06-24T11:06:21.610 回答