2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

AssertJ

작성: sangseek | 게시 날짜: 2025/12/18 | 조회수: 68
[ 편집불가 ]

AssertJ는 자바용 단언(Assertion) 라이브러리로, 테스트 코드에서 가독성 높고 표현력이 풍부한 fluent-style(체이닝) 단언을 제공하는 도구입니다. FEST Assert에서 발전해 온 프로젝트로, JUnit이나 TestNG 같은 테스트 프레임워크와 함께 사용되어 테스트의 의도와 실패 원인을 더 명확히 보여줍니다. 주요 특징 - Fluent API: `assertThat(...)`으로 시작해 연속적인 조건을 체이닝하여 읽기 쉬운 문장처럼 표현 가능. - 풍부한 빌트인 단언: 컬렉션, 배열, 맵, Optional, Stream, 날짜/시간, 예외, 문자열(contains/regex), 파일, JSON/XML 등 다양한 타입에 대한 풍부한 검증 메서드 제공. - 예외 검증 지원: `assertThatThrownBy(...)`, `assertThatExceptionOfType(...)` 등으로 예외 타입과 메시지까지 쉽게 검증. - Soft Assertions: 여러 단언을 모아서 마지막에 한 번에 검증(soft assertions)하여 하나의 테스트에서 여러 실패 원인을 모두 확인 가능. - Java 8+ 친화적: 람다와 Optional을 자연스럽게 사용하는 API 제공. - 커스텀 단언 생성기: 도메인 객체에 대해 타입별 커스텀 assertion 클래스를 자동 생성하여 더 자연스럽게 단언 가능. - 모듈화: 핵심(assertj-core) 외에 DB, Guava, Swing 등 확장 모듈 제공(필요 시 추가). - 좋은 오류 메시지: 실패 시 읽기 쉬운 설명과 실제/기대값을 잘 보여주어 디버깅에 도움. 간단한 사용 예 - 일반 단언: import static org.assertj.core.api.Assertions.assertThat; assertThat(list).hasSize(3).contains("a", "b").doesNotContain("z"); - 예외 검증: assertThatThrownBy(() -> service.call()).isInstanceOf(IllegalArgumentException.class).hasMessageContaining("invalid"); - Soft Assertions: SoftAssertions softly = new SoftAssertions(); softly.assertThat(x).isEqualTo(1); softly.assertThat(y).isGreaterThan(0); softly.assertAll(); 설치 및 사용 - Maven/Gradle로 `org.assertj:assertj-core` 의 최신 버전을 추가하여 사용. (정확한 버전은 Maven Central에서 확인) 요약 AssertJ는 테스트 단언을 더 읽기 쉽고 표현력 있게 만들어 주는 자바 전용 라이브러리로, 다양한 타입에 대한 풍부한 검증 기능과 깔끔한 실패 메시지, 커스터마이징 가능성을 제공해 단위/통합 테스트에서 널리 사용됩니다.
내용이 부정확하다면 싫어요를 누르세요.