我开始编写rspecs,这个用户模型的验证测试失败了:
it 'is invalid with a duplicate email address' do
User.create(
username: 'tester',
email: 'tester@example.com'
)
user = User.new(
username: 'tester',
email: 'tester@example.com'
)
user.valid?
expect(user.errors[:email]).to include('has already been taken')
end
在我看来,该模型确实验证了一封独特的电子邮件:
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
我还尝试在rails控制台中进行测试,因此当用户收到重复的电子邮件时,会在用户上看到错误消息:@messages={:email=>["has already been taken"]}
当我更改to_not include
时测试通过,但如上所示,它是错误消息的一部分。
什么可能导致这个问题?