В Junit 4 вы видите какой-либо недостаток для выброса ComparisonFailure
вместо AssertionError
, когда assertEquals (Object, Object) не удается?
assertEquals (Объект, Объект) бросает
- a
ComparisonFailure
, если ожидаемое и фактическое значение - String
- и
AssertionError
, если один из них не является строкой
AssertionError
сообщение уже имеет форму
"expected:<"+ expected.toString() +"> but was <"+ actual.toString()
(через String.valueOf
, см. Ниже метод junit-4.8.2, вызываемый Assert.assertEquals (Object, Object) для создания сообщения AssertionError):
static String format(Object expected, Object actual) {
...
String expectedString= String.valueOf(expected);
String actualString= String.valueOf(actual);
...
return formatted+"expected:<"+ expectedString +"> but was:<"+ actualString +">";
ComparisonFailure
предоставляют гораздо более читабельный способ определения различий в диалоговом окне Eclipse или Intellij IDEA (FEST-Assert выбрасывает это исключение)
[Обновление: вопрос отредактирован, чтобы сосредоточиться на обсуждении ComparisonFailure / AssertionError.]