[java] TestNG 어노테이션에 대한 이해

TestNG는 Java 기반의 테스트 프레임워크로, 테스트 코드를 수행하고 관리하는 도구입니다. TestNG는 JUnit보다 더 유연한 기능을 제공하며, 테스트의 우선순위, 의존성, 그룹화 등 다양한 기능을 지원합니다.

TestNG에서 사용되는 중요한 개념 중 하나는 어노테이션(Annotation)입니다. 어노테이션은 테스트 메서드나 테스트 클래스에 대한 추가적인 정보를 제공하고, 테스트를 구성하는 방법을 정의합니다. 이번 포스트에서는 TestNG에서 사용되는 몇 가지 중요한 어노테이션에 대해 알아보겠습니다.

@Test

@Test 어노테이션은 테스트 메서드를 정의할 때 사용됩니다. 이 어노테이션을 붙인 메서드는 테스트 시에 실행되는 코드를 포함하고 있어야 합니다. 예를 들어 아래의 코드는 TestNG 테스트 메서드를 정의한 예시입니다.

@Test
public void testMethod() {
    // 테스트 실행 코드
}

@BeforeMethod와 @AfterMethod

@BeforeMethod와 @AfterMethod 어노테이션은 각각 테스트 메서드 실행 전과 후에 실행되는 메서드를 정의하는데 사용됩니다. 이러한 어노테이션을 사용하면 각각의 테스트 메서드 실행 전후에 필요한 설정 및 정리 작업을 수행할 수 있습니다. 아래의 코드는 @BeforeMethod와 @AfterMethod를 사용한 예시입니다.

@BeforeMethod
public void setup() {
    // 테스트 전에 수행되어야 할 설정 작업
}

@AfterMethod
public void teardown() {
    // 테스트 후에 수행되어야 할 정리 작업
}

@DataProvider

@DataProvider 어노테이션은 테스트 데이터를 제공하는 메서드를 정의할 때 사용됩니다. 이 메서드는 테스트 메서드에서 사용될 데이터를 동적으로 생성하거나 외부에서 가져올 수 있습니다. 예를 들어 아래의 코드는 @DataProvider를 사용하여 테스트 데이터를 제공하는 예시입니다.

@DataProvider
public Object[][] testData() {
    // 테스트 데이터 생성 또는 외부에서 가져오기
}

위의 코드에서 testData 메서드는 테스트 메서드에 사용될 데이터를 생성하거나 외부에서 가져오는 역할을 합니다.

@BeforeClass와 @AfterClass

@BeforeClass와 @AfterClass 어노테이션은 각각 테스트 클래스 실행 전과 후에 한 번씩 실행되는 메서드를 정의하는데 사용됩니다. 이러한 어노테이션을 사용하면 클래스 수준에서 필요한 설정 및 정리 작업을 수행할 수 있습니다. 아래의 코드는 @BeforeClass와 @AfterClass를 사용한 예시입니다.

@BeforeClass
public void setupClass() {
    // 테스트 클래스 실행 전에 수행되어야 할 설정 작업
}

@AfterClass
public void teardownClass() {
    // 테스트 클래스 실행 후에 수행되어야 할 정리 작업
}

위의 코드에서 setupClass 메서드는 테스트 클래스 실행 전에 필요한 설정 작업을, teardownClass 메서드는 테스트 클래스 실행 후에 필요한 정리 작업을 수행합니다.

이렇게 TestNG에서 사용되는 몇 가지 중요한 어노테이션에 대해 알아보았습니다. TestNG의 다른 어노테이션들에 대해서도 자세히 공부하여 효율적인 테스트 코드를 작성할 수 있도록 노력해보세요.


참고 자료: