我正在为我的用户模型编写简单的模型测试。其中一个检查是否存在:email
属性:
it "is invalid without an email" do
expect(user = User.new(email: nil)).to have(1).errors_on(:email)
end
由于某些原因,此测试失败,因为错误哈希包括"电子邮件不能为空白"两次:
Failures:
1) User is invalid without an email
Failure/Error: expect(user = User.new(email: nil)).to have(1).errors_on(:email)
expected 1 errors on :email, got 2
当我在控制台中使用nil
电子邮件创建用户并致电user.errors.full_messages
时,我会收到以下信息:
@messages=
{:email=>["can't be blank", "can't be blank"]
这是user.rb
中我的验证:
validates_presence_of :email
奇怪的是,如果我从user.rb
删除上面的代码,现在测试通过了,我只在错误哈希中得到错误一次。
这里发生了什么?我应该注意我的用户模型是通过Devise生成器创建的。 Devise是否已经包含:email
??
答案 0 :(得分:3)
是。你的假设是正确的。设计有自己的电子邮件验证不是空白。你可以删除你的。