JAVA

[Java] 테스트에서 사용하는 AssertJ의 AssertThat이란?

준몽쓰 2025. 6. 15. 00:00

 

 

[테스트 토크 작성 방법]

1. given : 어떤 상황이 주어졌을 때

2. when : ~를 실행했을 때

3. then : 검증한 결과가 ~가 나와야함

 

given, when는 실행 단계, then는 검증 단계라고 할 수 있다.

- 실행 단계 : 사용자 입력을 모방해 테스트할 로직을 실행시킴

- 검증 단계 : 실행 단계가 예상된 대로 동작하는지 검증

 

■ assertThat()은 테스트에서만 쓰일까?

- 결과가 예상과 같은지를 검증할 때 사용

- 주로 src/test/java 디렉토리에 있는 단위 테스트, 통합 테스트 등에서 사용

 

■ AssertJ란?

assertion을 제공하는 자바 라이브러리이다. 에러 메세지와 테스트 코드의 가독성을 매우 높여준다.

 

■ AssertJ 메소드 임포트

 

■ assertThat 메서드 정리

1) 공통 메서드 (다양한 타입에 사용 가능)

 - isEqualTo(Object expected) : 값이 일치하는지 확인

-  isNotEqualTo(Object expected) : 값이 일치하지 않는지 확인

- isNull() : null인지 확인

- isNotNull() : null이 아닌지 확인

- isSameAs(Object expected) : 동일한 객체 참조인지 확인

- isNotSameAs(Object expected) : 다른 객체 참조인지 확인

- isInstanceOf(Class<?> tpye) : 특정 클래스의 인스턴스인지 확인

 

ex)

assertThat예시

>> rateDiscountPolicy 객체가 RateDiscountPolicy 타입인지 확인한다는 의미

 

2) 문자열 관련 메서드

- isEmpty() : 빈 문자열인지 확인

- hasSize(int expected) : 문자열의 길이 확인

- hasSizeGreaterThan(int expected) : 문자열의 길이가 특정 값보다 큰지 확인

- hasSizeLessThan(int expected) : 문자열의 길이가 특정 값보다 작은지 확인