这是失败的测试:
context "when password does not match confirmation" do
before { build(:user, :password_confirmation => 'mismatch') }
it { should_not be_valid }
end
我正在build
为这个测试套件使用 Factory Girl 的方法。
我的用户模型:
class User < ActiveRecord::Base
attr_accessible :email, :name, :password, :password_confirmation
has_secure_password
validates :password_confirmation, presence: true
validates :password, presence: true, length: { minimum: 5 }
end
更新:使用 has_secure_password 时,您不需要用 :confirmation => true 标记 :password 字段。已处理:请参阅源代码:https ://github.com/rails/rails/blob/master/activemodel/lib/active_model/secure_password.rb
验证工作正常 - 当我尝试在控制台上创建新用户时,我收到了正确的错误消息。那么为什么测试失败了呢?错误在哪里?