Подтвердить что ты не робот

Форматирование вывода так, чтобы Intellij Idea показывала различия для двух текстов

Я хотел бы иметь возможность печатать в журналах сообщение, для которого идея intellij представляла бы хороший способ сравнения двух объектов (строк). Это происходит автоматически для сообщения об ошибке, зарегистрированного сбойным сообщением junit:

assertEquals("some\nString", "another\nString");

=>
org.junit.ComparisonFailure:  <Click to see difference>
    at org.junit.Assert.assertEquals(Assert.java:123)
    at org.junit.Assert.assertEquals(Assert.java:145)
    at com.something.DummyTest.testDummy(DummyTest.java:89)

< Нажмите, чтобы увидеть разницу > запись фактически отображается как ссылка в окне вывода Intellij Idea. Когда вы нажимаете на ссылку, открывается окно сравнения, которое показывает два значения (так же, как вы бы сравнили два файла).

Простое исключение исключается, потому что я хотел бы регистрировать несколько объектов для сравнения. Я уже пробовал записывать текст, но мне не удалось убедить идею сравнить два текста.

4b9b3361

Ответ 1

IntelliJ IDEA использует жестко закодированное регулярное выражение. Если текст соответствует шаблону, он предложит щелкнуть, чтобы просмотреть разницу.

Образец:

expected:<bla-blah> but was:<blah-blah-blah>

Вывод должен соответствовать формату assertEquals или assertThat.

Точные шаблоны несколько разбросаны по коду в IDEA, но некоторые из них, например, здесь.