【发布时间】:2015-08-06 00:38:08
【问题描述】:
我在 Rails 模型中有一些代码可以做到这一点:
has_one :plan
validates_presence_of :plan
并且曾经这样做过:
after_initialize :set_plan
def set_plan
self.plan ||= FreePlan.new
end
现在可以了:
def plan
super || (self.plan = FreePlan.new)
end
然而,现在这个测试失败了:
it { is_expected.to validate_presence_of(:plan) }
新代码更好,因为它不必总是为这个对象的每个实例化在数据库中查找一个计划对象,但我很好奇测试在测试对象方面做了什么,并且它的生命周期。
【问题讨论】:
标签: ruby-on-rails-4 rspec-rails shoulda