【发布时间】:2015-11-28 21:13:53
【问题描述】:
我有多个带有电子邮件验证的模型。因此,我已将验证提取到自定义验证器中。我是按照Rails Guides 的教程做的。
class EmailValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
record.errors[attribute] << (options[:message] || "is not an email")
end
end
end
到目前为止,一切都很好。但是由于我已经将电子邮件验证的功能提取到它自己的范围内,所以我也想单独测试它。我不想为每个模型添加相同的电子邮件格式测试。
我找到了另一个question,它也问了同样的问题,但对于 RSpec。但由于我还没有使用存根和模拟,我不知道如何将测试移植到 Minitest 测试。我没有找到任何使用 Minitest 测试自定义验证器的资源。
有人知道如何在 Minitest 中为自定义验证器编写此类测试(不使用规范!)?
【问题讨论】:
标签: ruby-on-rails validation unit-testing minitest custom-validators