因此,在Rails中,我为电子邮件编写了以下验证:
validates :email, presence: true, uniqueness: true
validates_format_of :email, :with => /\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z/
当我尝试使用错误的电子邮件提交内容时,此方法有效,因为它向我发送了一个错误,但是当我尝试像这样进行测试时:
test "should not save if email is not valid" do
slogan = Slogan.create(firstname: 'tristan', lastname: 'vermeesch', email: 'titivermeeschgmail.com', slogan: 'Test')
assert slogan.valid?, "Tried to save with an email that is not valid"
end
测试失败,有人可以帮忙吗?
最佳答案
如果您尝试测试不应保存您的模型,并且在输入错误的电子邮件时应该有错误,可以使用有效的吗?方法和错误?属性。
您的测试将如下所示:
test "should not save if email is not valid" do
slogan = Slogan.create(firstname: 'tristan', lastname: 'vermeesch', email: 'titivermeeschgmail.com', slogan: 'Test')
assert_not_nil slogan.errors[:email]
end