【发布时间】:2014-04-04 12:53:18
【问题描述】:
我正在尝试测试 Lead.new(params).active! 是否会引发错误。解决这个问题的最佳方法是什么?
class Lead < ActiveRecord::Base
enum status: { stale: 0, active: 1, converted: 2 }
validate :existing_lead, on: :create
private
def existing_lead
if new_record? && (stale? || converted?)
errors.add(:status, "invalid for new leads")
end
end
end
我知道我可以手动设置枚举值,然后在我实例化的对象上测试valid?,但我希望有一种方法可以测试stale! 和converted!,它们在调用时会保存到数据库中。
【问题讨论】:
-
我认为您的意思是要测试
Lead.new.stale!或Lead.new.converted!引发错误,因为这些错误对于新潜在客户无效。
标签: ruby-on-rails ruby ruby-on-rails-4 rspec