我正在学习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
答案 0 :(得分:0)
如果您使用状态验证程序和某种格式验证程序验证电子邮件属性,则通过将属性设置为nil会出现两个错误。
也许尝试类似的事情:
validates :email, presence: true,
format: { with: %r\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/,
allow_nil: true }