0
我有一個用戶模型,需要至少有一個大寫字母的密碼。我的規格寫成如下:shoulda matchers with自定義驗證缺陷
subject { User.new }
it { should_not allow_value("test123$").for(:password).with_message("password requires an uppercase letter (\"test123$\")") }
然而,該規範將返回以下故障:
Expected errors to include ["password requires an uppercase letter (\"test123$\")"] when password is set to "test123$", got errors: ["password requires an uppercase letter (\"test123$\")"]
它看起來對我來說,這些錯誤陣列明確包括正確的消息。我在這裏做錯了什麼?
編輯: 下面是我試圖符合規範的驗證:
[
[/[A-Z]/, "requires an uppercase letter"],
[/[a-z]/, "requires a lowercase letter"],
[/[0-9]/, "requires a number"],
[/[^\w]/, "requires a special character"]
].each do |(format, message)|
validates :password, :format => {:with => format,
:message => message},
:allow_blank => true
end
我添加了驗證的代碼,負責生成此錯誤消息。那裏有什麼新奇的東西? – user2287662
您需要將其作爲代碼添加到您的問題中,以使其可讀。 –
對不起,現在應該修復。 – user2287662