如何在RSPEC另一个工厂内定义的工厂中定义两个新属性



我有两个名为 StudentTeacher的型号。他们两个都有相同的字段,例如nameage等。除了Teacher具有两个额外的属性qualificationcollege。现在,我为编写RSPEC,决定为与以下相同的工厂创建工厂:

FactoryGirl.Define做  工厂:学生做    输入"学生"    工厂:老师做      输入"老师"      资格学士学位      大学xyz    结尾  结尾结尾

我在student内定义了teacher,因为它们两个都具有相同的属性,除了teacher具有两个额外的属性。我添加了如上所述的属性,但它的错误为:

 1)老师#default_value_for     故障/错误:{期望(abjuct.qualification).be_false}     nomethoderror:       #student的未定义方法"资格":0x0000000E8C0088'在1.75秒内完成(文件需要14.48秒才能加载)1个例子,1个失败

如何在Teacher工厂中添加这些属性?

谢谢

如果您的StudentTeacher型号是2种不同的类,而无需继承,则无法执行您尝试实现的目标。

根据FactoryBot来源:

您可以轻松地创建多个工厂对于同一类而无需 通过嵌套工厂重复常见属性

factory :post do
  title { "A title" }
  factory :approved_post do
    approved { true }
  end
end

如果Teacher继承了Student类。
示例此处:如何使用继承用户模型定义工厂

我通过删除工厂中的嵌套来解决上述问题。

FactoryGirl.Define做  工厂:学生做    输入"学生"  结尾 工厂:老师做   输入"老师"   资格学士学位   大学xyz 结尾结尾

这在同一工厂创建了两个不同的工厂。:)

最新更新