상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - JUnit에서 @Nested 클래스를 사용하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
JUnit에서는 테스트 클래스를 계층적으로 조직하기 위해 @Nested 애노테이션을 제공합니다. @Nested를 사용하면 테스트 케이스를 그룹화하여 보다 구조적이고 읽기 쉬운 테스트 코드를 작성할 수 있습니다. 이를 통해 관련된 테스트들을 하나의 바깥 클래스 안에 여러 개의 중첩된 테스트 클래스로 나누어 관리할 수 있습니다. @Nested 클래스 사용 방법 1. 바깥 테스트 클래스에 작성 @Nested 클래스를 선언하기 위해서는 먼저 일반적인 @Test 애노테이션을 사용하는 테스트 클래스를 만듭니다. 2. 중첩 클래스에 @Nested 애노테이션 추가 바깥 테스트 클래스 내에 `static`이 아닌 인스턴스 중첩 클래스를 만들고, 해당 클래스에 `@Nested` 애노테이션을 붙입니다. 이 중첩 클래스 내에서 테스트 메서드를 작성합니다. 중요한 점은 @Nested 클래스는 반드시 non-static(inner) 클래스여야 한다는 점입니다. 3. 테스트 메서드는 @Test 붙여서 작성 @Nested 내부 클래스 내에서 각각의 테스트 케이스는 @Test 애노테이션을 붙여서 작성합니다. 4. 설정 메서드도 사용할 수 있음 @BeforeEach, @AfterEach, @BeforeAll, @AfterAll도 중첩 클래스 내에서 사용할 수 있는데 `@BeforeAll`과 `@AfterAll`은 static으로 선언해야 하며, 중첩 클래스가 non-static이므로 static 메서드 선언 시에는 `@TestInstance(Lifecycle.PER_CLASS)` 애노테이션을 중첩 클래스에 붙여야 할 수 있습니다. @Nested 사용의 장점 - 논리적 그룹화 : 관련 테스트들을 논리적인 단위로 묶어 가독성과 유지보수성을 높임 - 가독성 향상 : 테스트 계층이 명확해져서 어떤 테스트가 어떤 상황을 시험하는지 쉽게 인지 가능 - 상태 공유 가능 : 바깥 클래스 멤버에 접근할 수 있어서 초기 세팅을 공유하기 용이 간단한 예시 코드 ```java import org.junit.jupiter.api.*; class CalculatorTest { Calculator calculator; @BeforeEach void setUp() { calculator = new Calculator(); } @Nested class AddOperation { @Test void shouldAddTwoPositiveNumbers() { Assertions.assertEquals(5, calculator.add(2, 3)); } @Test void shouldAddNegativeAndPositiveNumber() { Assertions.assertEquals(1, calculator.add(-2, 3)); } } @Nested class SubtractOperation { @Test void shouldSubtractTwoNumbers() { Assertions.assertEquals(1, calculator.subtract(3, 2)); } } } ``` 위 예제에서 `CalculatorTest`는 바깥 테스트 클래스이고, `AddOperation`, `SubtractOperation`이 각각 `@Nested` 애노테이션이 붙은 테스트 그룹입니다. 이렇게 하면 더 명확하게 어떤 테스트가 어떤 기능 단위를 검증하는지 구분할 수 있습니다. 요약 - @Nested 는 JUnit5에서 제공하는 중첩 테스트 클래스 애노테이션 - 중첩 클래스는 non-static이어야 하며, 내부에 @Test 메서드를 가질 수 있음 - 테스트를 논리적인 그룹으로 묶어 깔끔하고 읽기 쉬운 테스트 구조 가능 - 바깥 테스트 클래스의 필드나 메서드에 접근 가능 - 설정 및 정리 메서드도 중첩 클래스 내에서 사용할 수 있음 이처럼 @Nested 클래스를 적절히 활용하면 복잡한 테스트 클래스를 체계적으로 관리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기