AssertJ - это assertJ-core, а также множество связанных с ним opensource библиотек и инструментов, которые позволяют гибко работать с assertions над типизированными объектами. AssertJ обладает большим количеством возможностей, на нее легко перевести проект, есть плагины генерации assertions по классам, а так же существует allure интеграция.
AssertJ-core
Из коробки assertJ-core предоставляет большое количество полезных фич. Все assertions типизированы (IDE подскажет, что можно проверить у данного типа) и имеют fluent интерфейс. С помощью assertJ удобно проверять коллекции, есть сравнение объектов по полям с различными стратегиями, а так же soft assertions, которое позволяет хранить ошибки в случае несколько проверок, а не падать на первой. Все фичи можно посмотреть тут
Перевод на assertJ
В assertJ-core есть sh скрипты для конвертации стандартных Junit assert-ов на assertJ.
Например для assertEquals(actual, expected)
будет сконвертировано в assertThat(actual).equalTo(expected)
.
К сожалению, конвертации assertThat с Hamcrest матчерами на assertJ пока не добавили. Увы.
Кодогенерация
Для удобства работы с пользовательскими классами, есть maven и gradle плагины для генерации assertions. Например, вместо:
assertThat(object).hasProperty("a", expected)
После генерации можно писать проще:
assertThat(object).hasA(expected)
Более того есть кастомизация assertions через темплейты!
Allure-assertJ
Есть готовая интеграция с allure. Она позволяет прокидывать все assertions в allure отчет. Реализовано это через aspect и в отчете, например, для сгенеренных assertions выглядит так:
truth
Поддержка assert-ов для android прекращена. Есть библиотеки от google, в которой это реализовано truth. Подробное сравнение assertJ vs truth есть на официальном сайте.