我在这样的验证中测试了很多错误的字符串:
['0', '3:a', 'xx:11', '-1', '-3:00', 'h', 'h2', 'h2h', 'm', 'm10', 'm10m', '2hm', 'h2m', 'hm2', '2m10h', '2m10m', '2h10h'].each do |input|
FactoryGirl.build(:time_record, duration_string: input).should have(1).error_on('duration_string'), "Tested value was '#{input}'"
end
可悲的是,当其中一个失败时,消息expected 1 error on :duration_string, got 0
并没有告诉我,哪一个失败了。我知道我可以传递显示的第二个参数,而不是像这样的默认消息:
x.should have(1).error_on('duration_string'), "Tested value was '#{input}'"
但这隐藏了原始消息。有没有办法只将我自己的消息附加到原始消息而不是替换它?
谢谢你。