gpt4 book ai didi

ruby-on-rails - 如何测试枚举操作方法在创建或保存之前验证对象?

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:28 25 4
gpt4 key购买 nike

我正在尝试测试 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! 在调用时保存到数据库。

最佳答案

您可以通过这种方式完成您的要求:

expect { Lead.new.stale! }.to raise_error(
ActiveRecord::RecordInvalid, "Validation failed: Value invalid for new leads")

关于ruby-on-rails - 如何测试枚举操作方法在创建或保存之前验证对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22863422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com