AssertJ 는 서드파티 라이브러리입니다.
AssertJ 가 등장한 이후에는JUnit이 제공하는 assertion 밑에 있는 메서드보다 AssertJ 버전을 많이 사용합니다.
그 이유는 AssertJ 버전이 가독성이 더 좋기 때문이죠.
예시를 볼까요?
인스턴스 A와 인스턴스 B가 같은 인스턴스인지 확인하려는 상황이라고 가정해봅시다.
// junit 사용
assertEquals(expected, actual);
// assertj 사용
assertThat(actual).isEqualTo(expected);
이 때, junit 을 사용하면 1번을, assertj 를 사용하면 2번을 사용하겠죠?
junit 을 사용하면 어떤 인자가 검사 대상이고, 어떤 인자가 기댓값인지 알기 어렵습니다.
반면에 assertj 를 사용하면 검사 대상과 기댓값을 쉽게 알 수 있죠. 즉, 가독성이 더 좋습니다.
또한 assertj 는 메서드 체이닝을 지원하기 때문에 문자와 숫자를 비교 할 때에도 가독성을 높일 수 있습니다.