我应该模拟AR协会吗?

时间:2017-11-09 13:53:07

标签: ruby-on-rails unit-testing activerecord

我试图在"隔离"中尝试测试我的订单 AR模型,但因为它存在于复杂的" context"中,我需要之前创建了很多相关的AR模型。

我的模特是:

class Order < ApplicationRecord
  belongs_to :registration #it's required!!!
end

class Registration < ApplicationRecord
  belongs_to :event #it's required!!!
end

class Event < ApplicationRecord
  has_many :registrations
  belongs_to :account #An account belongs_to an organization

  #This model a couple of required associations also
end

是某种方式来&#34;模拟&#34;我的订单模型的关联???我应该吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为,通过正确的factory_girl设置,您可以轻松设置上下文。在我的经历中,我没有遇到任何关联被束缚的情况。

从我的角度来看,如果你的Order模型中有一些复杂的方法,那么你应该将它移动到单独的实体(服务对象,单独的库,装饰器)中。然后,您可以轻松地测试此逻辑,而无需设置关联,对象等。

在我开始正确设计应用程序之后,我不记得上次我真的需要单独测试我的模态。我怀疑,你的问题对你的设计来说也像钟声。我只将模型视为一组验证(在轨道内测试),关联(在轨道内测试)和琐碎的方法,因此通常不需要测试模型