shoulda-matcher错误验证length_of

时间:2014-02-19 19:04:38

标签: activerecord rspec ruby-on-rails-3.2 rspec-rails shoulda

我正在为我的用户模型编写一些规范,但测试没有通过。我正在从gem的github页面中找到this但没有成功。这是我的代码:

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) }

此验证应仅在更新过程中运行。

错误:

当telefono设置为“xxxxxxx”时,没有预料到错误包括“rapiderrónea(debe ser de 7 caracteres)”,得到错误:verticalerrónea(debe ser) de 7 caracteres)

当celular设置为“xxxxxxxxxx”时,没想到错误包括“纵向错误(debe ser de 10 caracteres)”,得到错误:纵向错误(debe s) er de 10 caracteres)

仅供参考:我设置了西班牙语语言环境;我认为这是原因

希望有人可以帮助我。谢谢你提前

1 个答案:

答案 0 :(得分:0)

我认为您收到了错误,因为shoulda_matcher不希望length: { is: 7 }numericality一起使用。

PS对我而言 - 对于电话号码使用数字很奇怪,您可以使用字符串并使用validatesformat来确保有效性数据。例如电子邮件验证here