Rspec忽略在Devise中指定的密码的最小长度

时间:2018-08-27 00:27:52

标签: ruby-on-rails ruby rspec

在Devise的配置中,我的密码最小长度为8。

# config/initializers/devise.rb

config.password_length = 8..128

但是,当密码为4个字符时,我的rspec 测试通过了

u = User.new({
  password: "test",
  # ....
})

expect(u).to be_valid

1 个答案:

答案 0 :(得分:0)

如果您不想使用shoulda,可以尝试这样做吗?

describe User do
  it "should validate the length of password" do
    FactoryGirl.build(:user, password: "aaaaa").should_not be_valid
  end
end

或者如果您想使用shoulda

it { should ensure_length_of(:password).is_at_least(8) }

,如果要检查最大长度,

it { should ensure_length_of(:password).is_at_most(18) }