I have some Test::Unit testcases that deal with Date and DateTime. If,
for whatever reason, I have a failing assert_equal on either Date or
DateTime, the resulting message is quite difficult to read: the reason
obviously is that pp dumps the content of the object, it doesn’t rely
on to_s or other more readable ways.
Is there any way to change this behaviour and make assert_equal print
Date.to_s and DateTime.to_s when the comparison fail?
I have some Test::Unit testcases that deal with Date and DateTime. If,
for whatever reason, I have a failing assert_equal on either Date or
DateTime, the resulting message is quite difficult to read: the reason
obviously is that pp dumps the content of the object, it doesn’t rely
on to_s or other more readable ways.
Is there any way to change this behaviour and make assert_equal print
Date.to_s and DateTime.to_s when the comparison fail?
You have two possibilities:
set Test::Unit::Assertions.use_pp to false, thus using Date#inspect,
or
create your own assertion that will use to_s. See documentation for
Test::Unit::Assertions.
(the easiest way would be to copy the code for assert_equal from
assertions.rb and change the first line with build_message)