SeouliteLab

[Java/자바] JUnit - @After와 @AfterClass의 차이점 본문

프로그래밍

[Java/자바] JUnit - @After와 @AfterClass의 차이점

Seoulite Lab 2024. 3. 9. 00:57

JUnit에서 @After와 @AfterClass 어노테이션의 차이점

JUnit에서 테스트 클래스의 설정 및 정리를 위해 사용되는 어노테이션 중에서도 @After와 @AfterClass는 특히 중요합니다. 이 두 어노테이션은 테스트 메서드 실행 전후에 특정한 동작을 수행할 수 있도록 도와줍니다.

@After 어노테이션

@After 어노테이션은 각 테스트 메서드가 실행된 후에 실행되는 메서드를 지정할 때 사용됩니다. 이 어노테이션이 붙은 메서드는 각각의 테스트 메서드가 실행된 후에 항상 실행되며, 주로 테스트에서 사용한 리소스의 정리나 상태를 초기화하는 등의 역할을 수행합니다.

@AfterClass 어노테이션

@AfterClass 어노테이션은 모든 테스트 메서드가 실행된 후에 한 번만 실행되는 메서드를 지정할 때 사용됩니다. 테스트 클래스 내에 정적 메서드로 선언되어야 하며, 주로 테스트 환경을 설정하거나 테스트 종료 시에 리소스를 정리하는 등의 역할을 수행합니다.

예제 코드

아래 예제 코드에서는 @After와 @AfterClass 어노테이션의 사용법과 각각의 역할을 보여줍니다.


import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class TestClass {

    @BeforeClass
    public static void setUpBeforeClass() {
        System.out.println("BeforeClass: Setting up test class");
    }

    @Before
    public void setUp() {
        System.out.println("Before: Setting up test method");
    }

    @Test
    public void testMethod1() {
        System.out.println("Test method 1");
    }

    @Test
    public void testMethod2() {
        System.out.println("Test method 2");
    }

    @After
    public void tearDown() {
        System.out.println("After: Cleaning up after test method");
    }

    @AfterClass
    public static void tearDownAfterClass() {
        System.out.println("AfterClass: Cleaning up after test class");
    }
}