创建新用户时,会给他们一个密码。
我想在用户更新或更改密码时测试案例。
User.rb
validates :password, :on => :create,
:presence => true,
:confirmation => true,
:length => {:within => 6..12}
before_validation :make_password, :on => :create
在spec / models / user_spec.rb中,我有以下内容:
描述“密码验证” 之前(:每个)做 @user = Factory(:user) 端
it "should reject passwords that are too long" do
too_long_password = "a" * 13
@user.update_attributes(@attr.merge(:password => too_long_password, :password_confirmation => too_long_password)).should_not be_valid
end
端
不起作用。 现在我该如何测试更新? 任何想法都赞赏。
答案 0 :(得分:2)
从验证中删除:on => :create
子句。删除它将在创建和更新期间激活验证。
validates :password,:presence => true,
:confirmation => true,
:length => {:within => 6..12}
您尚未提及,但如果在before_validation中也需要,您也可以删除:on => :create