Как вывести разницу между сравниваемыми коллекциями?

Здравствуйте.
Сравниваю две коллекции строк на равенство.
Например: assertThat(first, equalTo(second));
Если они не совпадают, то в исключении выводится все содержимое коллекций без возможности узнать разницу между ними.
Есть ли готовые решения в harmcrest или xunit.asserts чтобы показать именно разницу между списками?

AssertJ умеет такое. AssertJ / Fluent assertions for java

1 лайк

Мне кажется тут проще кастомный ассерт написать

можно просто перебрать список

assertThat(expectedList).hasSize(actualList.size());

int i = 0;
for (String expectedValue : expectedList) {
            assertThat(expectedValue).isEqualTo(actualList.get(i));
            i++;
        }
1 лайк

Не нашел я в AssertJ вывода разницы между коллекциями.

Сделал так:

Sets.SetView<String> result; //Guava
if (descFromDB.size() > descFromUi.size()){ //Hashset<String>
    result = Sets.difference(descFromDB, descFromUi);
}else{
    result = Sets.difference(descFromUi, descFromDB);
}
assertThat(result.size()).withFailMessage("Разница элементов в списках:" + result.toString()).isEqualTo(0);