我想用RSpec测试用户模型,我对密码和 password_confirmation 的通过验证有问题。
代码:https://github.com/paw3lgora/gCMS/blob/master/spec/models/user_spec.rb
我遇到问题:它{should validate_confirmation_of(:密码)}
我不想使用BCrypt的devise gem或has_secure_password方法,因为我学习了Ruby,我想从头开始实现我的认证系统,并在将来添加Argon2。
这给我一个错误:
1)用户验证密码应该验证 :password_confirmation匹配:密码 失败/错误:它{should validate_confirmation_of(:password)}
User did not properly validate that :password_confirmation matches :password. After setting :password_confirmation to ‹"some value"›, then setting :password to ‹"different value"›, the matcher expected the User to be invalid and to produce the validation error "doesn't match Password" on :password_confirmation. The record was indeed invalid, but it produced these validation errors instead: * name: ["Nazwa użytkownika nie może być pusta.", "Nazwa użytkownika jest za krótka. Minimum 2 znaki."] * email: ["Nie podałeś emaila.", "Email jest za krótki. Minimum 5 znaków.", "Podałeś złą nazwę użytkownika."] * password_confirmation: ["Hasła nie pasują do siebie."] # ./spec/models/user_spec.rb:27:in `block (4 levels) in <top (required)>'
帮帮我们! :)
答案 0 :(得分:0)
如果您仔细阅读整条信息,请看
记录确实无效,但它 产生了这些验证错误:
这意味着验证失败,但匹配器期望验证错误完全符合指定。还有更多。
您有两种选择:
:name
和:email
有效的方式准备用户对象。