📝 개요

JUnit은 Java 애플리케이션에서 단위 테스트를 작성하고 실행하기 위한 대표적인 테스트 프레임워크다.

프로그램의 개별 메서드나 컴포넌트가 정상적으로 동작하는지 자동으로 검증할 수 있게 해주며, 테스트 코드 기반의 개발을 가능하게 한다.

이 문서는 JUnit을 처음 접하는 사람도 테스트 코드 작성 → 실행 → 통합 테스트 구성까지 쉽게 따라갈 수 있도록 설명과 예시를 중심으로 정리했다.


⚙️ JUnit 핵심 개념

어노테이션 설명
@Test 테스트할 메서드를 정의
@BeforeEach 각 테스트 실행 전에 실행됨 (테스트 초기화 용도)
@AfterEach 각 테스트 실행 후에 실행됨 (정리 작업 용도)
@BeforeAll 테스트 클래스 전체 실행 전에 1회만 실행됨 (static 필요)
@AfterAll 테스트 클래스 전체 실행 후에 1회만 실행됨 (static 필요)
@DisplayName 테스트 이름을 지정해 가독성을 높임
@Nested 내부 클래스를 활용해 테스트를 논리적으로 그룹화 가능

Assertions 주요 메서드

메서드 설명
assertEquals(a, b) a와 b가 같은지 검증
assertTrue(condition) 조건이 true인지 검증
assertThrows(Exception.class, () -> {...}) 예외 발생 여부 검증

⚙️ JUnit 적용 순서

1. 의존성 추가 (Gradle 기준)

// build.gradle
dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.3'
}

2. 테스트 클래스 구조 구성

src/test/java
└── com.example.service
    └── UserServiceTest.java

✏️ 단위 테스트 예시

테스트 대상 클래스