AssertJ

AssertJ는 테스트 라이브러리이다.

  • 메소드 체이닝을 지원하기 때문에 좀 더 깔끔하고 읽기 쉬운 테스트 코드 작성 가능(가독성이 좋음)

  • 개발자가 테스트를 하면서 필요하다고 상상할 수 있는 거의 모든 메소드를 제공

의존성

image-20211226210215502

spring-boot-starter-test에 기본적으로 포함되어있다. spring-boot-starter-test를 사용하지 않고 추가하는 경우에는 다음과 같이 추가할 수 있다.

Gradle

Maven

테스트 코드 작성 시작하기

Assertions.assertThat()

모든 테스트 코드는 assertThat() 메서드에서 시작한다.

테스트 실패 메세지

  • 테스트 실패시 나타낼 메세지를 .as()로 표현할 수 있다.

  • 반드시 검증 문 앞에 작성되어야한다.

다음과 같이 작성해두면 테스트 실패시 콘솔창에 에러메세지가 다음과 같이 출력된다.

다음과 같이 검증문 뒤에 작성할 경우 호출되지 않는 것을 볼 수 있다.

Collection 필터링

.filteredOn()

.filteredOn()으로 테스트할 데이터들을 필터링 할 수 있다.

이때 not, in, notIn에 대한 객체 프로퍼티를 검증할 수 도 있다.

Collection Data Extracting

기존의 클래스의 특정 데이터를 비교하기 위해서는 별도 리스트를 만들어 다음과 같이 테스트를 진행해야했다.

하지만 assertj에서 extracting을 지원해주면서 필요한 데이터만 추출해 테스트가 가능해졌다.

추출할 데이터가 한개라면 타입 지정이 가능하며, 여러개인 경우에는 assertj에서 지원해주는 tuple()로 테스트할 수 있다.

SoftAssertions

Assertions.assertThat()은 테스트가 한개라도 실패하면 해당 테스트는 중지된다.

SoftAssertions을 이용하면 모든 assertThat을 실행하고 해당 실패 내역을 확인할 수 있다.

참고

Last updated

Was this helpful?