Tag: 自定义validation器

使用Minitest测试自定义validation器

我有多个模型与电子邮件validation。 因此,我已将validation提取到自定义validation器中。 我按照Rails指南的教程来说明这一点。 class EmailValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[az]{2,})\z/i record.errors[attribute] << (options[:message] || "is not an email") end end end 到现在为止还挺好。 但是,由于我已经将电子邮件validation的function提取到了自己的范围内,我还想单独测试它。 我不想为每个模型添加相同的电子邮件格式测试。 我发现了另一个问题 ,但也对RSpec提出了同样的问题 。 但由于我还没有使用存根和模拟,我不知道如何将测试移植到Minitest测试。 我没有找到任何用Minitest测试自定义validation器的资源。 有人知道如何在Minitest中为自定义validation器编写此类测试(不使用规范!)?