Java JUnit과 단위 테스트

임유진·2025년 7월 3일

Java

목록 보기
8/12
post-thumbnail

🧩 단위 테스트(Unit Test)

: 프로그램의 최소 단위(메서드/클래스)의 동작을 검증하는 테스트

  • 반복 실행과 자동화가 용이

📝 목적

  • 코드 품질 확보
  • 리팩토링 안정성 보장
  • 버그 조기 발견
  • 개발자 신뢰도 향상

📝 사용 예시

  • JUnit

🛠️ JUnit

Java에서 가장 널리 쓰이는 단위 테스트 프레임워크입니다.

📝 특징

  • Java 단위 테스트 표준
  • 오픈소스
  • Gradle/Maven으로 쉽게 의존성 추가

📝JUnit 5 의존성

  • Maven 예시

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>5.10.0</version>
      <scope>test</scope>
    </dependency>
    		```
  • Gradle 예시

    	```groovy
    	testImplementation 'org.junit.jupiter:junit-jupiter:5.10.0'
    	```

📝 JUnit 5 주요 어노테이션

어노테이션설명
@Test테스트 메서드 표시
@BeforeEach각 테스트 실행 전 수행
@AfterEach각 테스트 실행 후 수행
@BeforeAll모든 테스트 시작 전 1회 수행 (static)
@AfterAll모든 테스트 종료 후 1회 수행 (static)
@DisplayName테스트 이름 지정
@Disabled테스트 비활성화

📝 Assert 메서드

  • JUnit에서는 검증을 위해 다양한 assert 메서드를 제공합니다.

    메서드설명
    assertEquals(expected, actual)기대값과 실제값이 같은지 검증
    assertTrue(condition)조건이 true인지 검증
    assertFalse(condition)조건이 false인지 검증
    assertNotNull(object)객체가 null이 아닌지 검증
    assertThrows()예외 발생 검증

예제 코드 - Calculator 클래스 단위 테스트

Calculator.java
```java
public class Calculator {

    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }

    public int divide(int a, int b) {
        if (b == 0) throw new IllegalArgumentException("0으로 나눌 수 없습니다.");
        return a / b;
    }
}
```
CalculatorTest.java
import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

class CalculatorTest {

    Calculator calc;

    @BeforeEach
    void setUp() {
        calc = new Calculator();
    }

    @Test
    @DisplayName("덧셈 테스트")
    void testAdd() {
        assertEquals(5, calc.add(2, 3));
    }

    @Test
    @DisplayName("뺄셈 테스트")
    void testSubtract() {
        assertEquals(1, calc.subtract(3, 2));
    }

    @Test
    @DisplayName("0으로 나누면 예외 발생")
    void testDivideByZero() {
        assertThrows(IllegalArgumentException.class, () -> calc.divide(10, 0));
    }

    @Test
    @DisplayName("나눗셈 테스트")
    void testDivide() {
        assertEquals(2, calc.divide(10, 5));
    }
}

📝 테스트 실행

  • IDE 실행

    • IntelliJ IDEA: 클래스 또는 메서드 옆 ▶ 아이콘 클릭
    • Eclipse: 클래스 우클릭 → Run As → JUnit Test
  • Gradle 실행

    ./gradlew test
  • Maven 실행

    mvn test

🧩 참고자료

profile
말하는 고구마

0개의 댓글