工厂女孩感到困惑 - 测试相关模型的编辑

时间:2012-06-18 03:31:27

标签: ruby-on-rails-3 cucumber factory-bot

我有以下型号:

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页面)

1 个答案:

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