在尝试编写rSpec测试时,我对如何使用关联生成FactoryGirl记录感到困惑. 基本上,我有一个测验模型和一个问题模型.它们通过HABTM协会相关联. 这是我的测验工厂: FactoryGirl.define do factory :
基本上,我有一个测验模型和一个问题模型.它们通过HABTM协会相关联.
这是我的测验工厂:
FactoryGirl.define do factory :quiz do description 'Test' # after(:create) { |quiz| quiz.create_sample_questions } # trait :with_questions do # after :create do |quiz| # 5.times do |q| # quiz.questions << FactoryGirl.create(:question, :with_answers) # end # end # end end end
是否最好在此处创建特征,然后为测验创建示例问题?或者我应该使用after create方法来做到这一点?
似乎都没有用,我的特质似乎没有产生问题.
谢谢!
我有兴趣看到这个问题的其他答案,但我可以将我的个人经验与使用工厂,关联以及使用回调自动加载一堆对象联系起来.基本上,我发现我尝试使用特征和回调的“发烧友”,我对我的规格未来造成的麻烦越多.有了这种扭曲的逻辑,你最终会遇到工厂的混乱,你会抓挠你的脑袋,想知道到底发生了什么.
完全假设的问题:如果以后你需要一个有4个问题的测验怎么办?好吧,每个测验:with_questions都包含5个问题.然后你创建一个名为with_4_questions的特征吗?