我正在尝试迭代一个对象并在使用 rspec 进行测试时更改其属性。这个想法是测试字符串是否太长(最多 255 个字符)。由于有这么多,我想避免重复代码并迭代对象的属性。
由于这个问题,我提出了以下几点:
[ :city, :email, :first_name, :last_name, :office_name, :street ].each do |attr|
c.send("#{attr}=", long_string)
c.errors[attr].should include "is too long (maximum is 255 characters)"
end
但是,控制台说
expected [] to include "is too long (maximum is 255 characters)"
long_string 实际上是 1000 个字符长,所以这不是问题。在相应的模型中,我已经确保上述每个属性的最大长度为 255。我不确定我在分配时是否做错了,或者是否是测试不起作用。