JAVA/Spring

JAVA SPRING 테스트 코드 작성: JUnit 5에서는 public을 생략해야된다고? 심지어 권장?!

min민 2024. 12. 16.

JUnit 5에서는 public을 생략해도 된다: 간결하고 깔끔한 테스트 코드 작성법

 

JUnit 5의 변화: public을 생략하라

JUnit 4와는 다르게 JUnit 5에서는 테스트 클래스와 메서드에 public 접근 제어자를 명시하지 않아도 실행된다. 이는 테스트 코드를 더욱 깔끔하고 간결하게 만들기 위한 변화이다.

 

 

왜 public을 생략할 수 있을까?

JUnit 5는 "Less is More" 원칙을 따른다. 불필요한 코드를 제거하고 가독성을 높이는 데 초점을 맞추었기 때문이다.

주요 이유는 다음과 같다:

  1. 테스트 메서드는 JUnit 프레임워크 내부에서만 실행된다. 외부에서 직접 호출될 필요가 없다.
  2. Java의 **패키지 수준 접근 제어자(package-private)**로도 충분히 테스트를 실행할 수 있다.
  3. 접근 제어자를 생략함으로써 코드의 가독성이 개선된다.

하지만 애플리케이션 코드에서는 여전히 적절한 접근 제어자를 사용해야 한다. 이 권장사항은 테스트 코드에만 적용된다.

 

JUnit 5 예제 코드

JUnit 4 예제 (기존 방식):

JUnit 4에서는 public 접근 제어자가 필수였다.

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class CalculatorTest {

    @Test
    public void testAddition() {
        int result = 2 + 3;
        assertEquals(5, result);
    }
}

 

JUnit 5 예제 (개선된 방식):

JUnit 5에서는 public 접근 제어자를 생략할 수 있다.

 

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class CalculatorTest {  // 클래스에 public 생략

    @Test
    void testAddition() {  // 메서드에 public 생략
        int result = 2 + 3;
        assertEquals(5, result);
    }
}

 

 

총 정리

JUnit 5에서는 테스트 클래스와 메서드에 public 접근 제어자를 생략하는 것이 권장된다. 이를 통해 불필요한 코드를 줄이고 코드의 가독성을 높일 수 있다. 하지만 일반 애플리케이션 코드에서는 여전히 적절한 접근 제어자를 사용해야 한다.

JUnit 5를 사용한다면 테스트 코드에서 public을 과감하게 생략하는 것이 좋다.

 

 

댓글