rspec电子邮件验证

时间:2012-05-23 18:31:04

标签: ruby-on-rails-3 email-validation

我正在学习Rspec。当我运行我的测试用例进行电子邮件验证时,我收到一个无法理解的错误。请解释。

  1) User should check for email validation
     Failure/Error: @test_user.should have(1).errors_on(:email)
       expected 1 errors on :email, got 2
     # ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'

Finished in 0.12903 seconds
2 examples, 1 failure

我的测试用例如下:

  it"should check whether name is present or not" do
    @test_user.name = nil
    @test_user.should have(1).errors_on(:name)
  end

  it "should check for email validation"do
    @test_user.email = nil
    @test_user.should have(2).errors_on(:email)
  end
end

1 个答案:

答案 0 :(得分:0)

如果您使用状态验证程序和某种格式验证程序验证电子邮件属性,则通过将属性设置为nil会出现两个错误。

也许尝试类似的事情:

validates :email, presence: true, 
                  format: { with: %r\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/,
                            allow_nil: true  }