2014-02-19 61 views
0

我正在爲我的用戶模型編寫一些規格,但測試未通過。我正在從gem的github頁面下載this,但沒有成功。這是我的代碼:shoulda-matcher錯誤驗證length_of

validates :phone, numericality: { only_integer: true }, allow_blank: true, length: { is: 7 } 
validates :mobile, numericality: { only_integer: true }, allow_blank: true, length: { is: 10 } 

和我的規格

it { should ensure_length_of(:phone).is_equal_to(7) } 
it { should ensure_length_of(:mobile).is_equal_to(10) } 

這驗證只應在更新過程中運行。

的錯誤:

沒想到的錯誤包括 「longitud是erronea(德貝SER日7個CARACTERES)」 時telefono設置爲 「XXXXXXX」,得到了錯誤:longitud是erronea(德貝SER 日7 CARACTERES)

沒想到的錯誤包括 「longitud是erronea(德貝SER日10個CARACTERES)」 時celular設置爲 「XXXXXXXXXX」,得到了錯誤:longitud是erronea(德貝š 呃德10個CARACTERES)

供參考:我設置了西班牙語語言環境;我認爲這是原因

希望有人能夠幫助我。謝謝提前

回答

0

我想你有錯誤,因爲shoulda_matcher不認爲length: { is: 7 }numericality一起使用。

PS對於我來說 - 使用數字表示電話號碼很奇怪,您可以使用字符串並使用validatesformat以確保有效性數據。例如電子郵件驗證here

+0

謝謝@gotva。我是新手,我認爲手機和手機號碼驗證必須具有數字性。我喜歡未來的讀​​者的東西http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation – Ricbermo