rspec - FactoryGirl 和 Mongoid 嵌入和构建列表

标签 rspec mongoid factory-bot

问题

好吧,我遇到的问题是 FactoryGirl 在我的测验中构建嵌入式作业,该作业使用 mongo 而不是事件记录。我尝试使用适用于我的事件记录模型的 build_list,但我在使用 mongoid 时遇到问题...

我可以调用以下方法并取回 quiz_assignments:

@quiznos.quiz_assignments.new(due_at: Time.now+ 1.day, published_at: Time.now)

但是如果我打电话

@quiznos = FactoryGirl.build(:quizWassignments)

@quiznos 将创建一个测验,但 @quiz.quiz_assignments == []

我什至可以运行以下命令并过去

@quiz = FactoryGirl.build(:quiz)
@quiznos = FactoryGirl.build(:quiz_assignment, quiz: @quiz)
@quiz.quiz_assignments.should == [@quiznos]

问题

有没有办法让它与 :quizWassignments 一起工作?

代码

class Quiz
  include Mongoid::Document
  include Mongoid::Timestamps
  field :user_id
  field :title
  field :description
  field :assignment_id
  field :due_at, :type => DateTime
  field :published_at, :type => DateTime
  embeds_many :quiz_assignments
end

class QuizAssignment
  include Mongoid::Document
  include Mongoid::Timestamps 
  field :due_at, :type => DateTime
  field :published_at, :type => DateTime
  embedded_in :quiz
  embeds_many :quiz_assignees
  validates_presence_of :due_at, :published_at
  validates_associated :quiz_assignees
end

FactoryGirl.define do
  factory :quiz do
    title { Factory.next(:name) }
    description { Factory.next(:description) }
    quiz_type "Practice"

    factory :quizWassignments do
      ignore do
        count 3
      end
      after_create do |quiz, evaluator|
        FactoryGirl.build_list(:quiz_assignment, evaluator.count, quiz: quiz)
      end
    end
  end

  factory :quiz_assignment do
    due_at Time.now + 1.day
    published_at Time.now
  end
end

最佳答案

当我第一次从 Active Record 切换到 Mongoid 时,我很难让 Factory Girl 发挥得很好。我最终切换到 Fabrication - 开箱即用地支持 Mongoid。

关于rspec - FactoryGirl 和 Mongoid 嵌入和构建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422294/

相关文章:

ruby-on-rails-3 - 设计辅助方法,确认!无法在出厂设置中使用/找到

testing - 是否可以将 BDD 包含到一个即将完成的项目中?

ruby-on-rails - 如何使用 rspec 测试带有嵌套路由的 Controller

ruby-on-rails - 如何重新加载由 let 定义的变量

associations - 工厂女孩与 child 类的联系,显示 nomethoderror : undefined method

ruby - FactoryBot 构建具有特征的对象列表

ruby - Webmock 没有正确注册我的请求 stub

ruby-on-rails-3 - 有人对在 Rails 3 中管理多态嵌套资源有什么建议吗?

ruby-on-rails - 带有rails 4.1的Mongodb错误代码10068或17287并设计

ruby-on-rails - 博客 Gem/Rails 引擎/Mongoid