[java] JUnit의 마크업 어노테이션

JUnit은 자바의 단위 테스트를 위한 프레임워크로, 테스트 코드 작성과 실행을 도와줍니다. JUnit에는 다양한 마크업 어노테이션이 포함되어 있으며, 이들을 사용하여 테스트 메서드를 정의하고 실행할 수 있습니다. 이번 포스트에서는 JUnit의 주요 마크업 어노테이션에 대해 알아보겠습니다.

@Test

@Test 어노테이션은 테스트 메서드임을 나타내는 어노테이션입니다. JUnit은 @Test 어노테이션이 붙은 모든 메서드를 테스트로 간주하고 실행합니다. 테스트 메서드는 반드시 public으로 선언되어야 하며, void형이어야 합니다. 예를 들어:

@Test
public void testAddition() {
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 3);
    assertEquals(5, result);
}

위의 예제에서 testAddition 메서드는 @Test 어노테이션이 붙어있으므로 JUnit이 이를 테스트로 간주하고 실행합니다.

@Before, @After

@Before 어노테이션은 각각의 테스트 메서드가 실행되기 전에 실행되어야 하는 초기화 코드를 작성할 때 사용합니다. @Before 어노테이션이 붙은 메서드는 각각의 테스트 메서드 실행 전에 실행되므로, 테스트할 객체를 초기화하거나 테스트 환경을 설정하는데 사용할 수 있습니다.

반대로, @After 어노테이션은 각각의 테스트 메서드가 실행된 후에 실행되어야 하는 정리 코드를 작성할 때 사용합니다. @After 어노테이션이 붙은 메서드는 각각의 테스트 메서드 실행 후에 실행되므로, 테스트한 객체를 해제하거나 테스트 환경을 정리하는 등의 작업에 사용될 수 있습니다.

@Before
public void setUp() {
    // 초기화 코드 작성
}

@After
public void tearDown() {
    // 정리 코드 작성
}

@BeforeClass, @AfterClass

@BeforeClass 어노테이션은 모든 테스트 메서드가 실행되기 전에 한 번만 실행되어야 하는 초기화 코드를 작성할 때 사용합니다. @BeforeClass 어노테이션이 붙은 메서드는 모든 테스트 메서드 실행 전에 단 한 번 실행되므로, 테스트 환경을 설정하는 등의 작업에 사용할 수 있습니다.

반대로, @AfterClass 어노테이션은 모든 테스트 메서드가 실행된 후에 한 번만 실행되어야 하는 정리 코드를 작성할 때 사용합니다. @AfterClass 어노테이션이 붙은 메서드는 모든 테스트 메서드 실행 후에 단 한 번 실행되므로, 테스트 환경을 정리하는 등의 작업에 사용될 수 있습니다.

@BeforeClass
public static void setUpClass() {
    // 초기화 코드 작성
}

@AfterClass
public static void tearDownClass() {
    // 정리 코드 작성
}

@Ignore

@Ignore 어노테이션은 테스트를 일시적으로 무시할 때 사용합니다. @Ignore 어노테이션이 붙은 테스트 메서드는 JUnit이 실행하지 않으며, 테스트 결과에도 포함되지 않습니다. 이 어노테이션을 사용하여 테스트를 임시로 비활성화할 수 있습니다.

@Ignore
@Test
public void testDivision() {
    // 나눗셈 테스트 코드 작성
}

결론

JUnit의 마크업 어노테이션을 적절히 활용하면 효과적인 단위 테스트 코드를 작성할 수 있습니다. @Test, @Before, @After, @BeforeClass, @AfterClass, @Ignore 등의 어노테이션을 사용하여 테스트 메서드의 실행 순서와 환경을 조절할 수 있습니다. 이를 통해 안정적이고 신뢰할 수 있는 테스트 스위트를 구성할 수 있습니다.

참고 자료