SeouliteLab

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

프로그래밍

[Java/자바] JUnit - @Before와 @BeforeClass의 차이점

Seoulite Lab 2024. 3. 9. 00:57

JUnit에서 @Before와 @BeforeClass 어노테이션의 차이

JUnit에서 테스트 메서드의 설정과 관련된 어노테이션으로는 @Before와 @BeforeClass가 있습니다. 두 어노테이션은 각각 테스트 메서드 실행 전과 테스트 클래스 실행 전에 실행되는 메서드를 지정합니다. 이 두 어노테이션은 테스트 환경을 설정하는데 사용되며, 각각의 차이점을 알고 사용해야 합니다.

@Before 어노테이션

@Before 어노테이션은 각 테스트 메서드가 실행되기 전에 한 번 실행되는 메서드를 지정할 때 사용됩니다. 주로 각각의 테스트 메서드가 실행되기 전에 초기화 작업을 수행하는 용도로 사용됩니다. 예를 들어, 데이터베이스 연결을 설정하거나 객체를 초기화하는 등의 작업을 수행할 수 있습니다.

@BeforeClass 어노테이션

@BeforeClass 어노테이션은 테스트 클래스가 실행되기 전에 한 번만 실행되는 메서드를 지정할 때 사용됩니다. 정적 메서드로 선언되어야 하며, 테스트 클래스 내의 모든 테스트 메서드가 실행되기 전에 한 번만 실행됩니다. 테스트 클래스의 설정 작업을 수행하는 용도로 사용됩니다.

예제 코드

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


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");
    }
}