私は次のような検証で多くの悪い文字列をテストしています:
['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
悲しいことに、そのうちの 1 つが失敗した場合、メッセージexpected 1 error on :duration_string, got 0
はどちらが失敗したかを教えてくれません。次のように、デフォルト メッセージの代わりに表示される 2 番目の引数を渡すことができることを知っています。
x.should have(1).error_on('duration_string'), "Tested value was '#{input}'"
しかし、これは元のメッセージを隠します。自分のメッセージを置き換えるのではなく、元のメッセージに追加する方法はありますか?
ありがとうございました。