我正在尝试测试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!
调用时到数据库。
答案 0 :(得分:2)
你可以这样做:
expect { Lead.new.stale! }.to raise_error(
ActiveRecord::RecordInvalid, "Validation failed: Value invalid for new leads")