[java] TestNG를 사용한 패키지 및 클래스 단위 테스트

TestNG는 Java 기반의 테스트 프레임워크로, 단위 테스트를 위한 다양한 기능을 제공합니다. 이번 블로그 포스트에서는 TestNG를 사용하여 패키지 단위와 클래스 단위로 테스트하는 방법에 대해 알아보겠습니다.

패키지 단위 테스트

테스트를 하려는 패키지의 모든 클래스를 함께 테스트하려면, TestNG의 @Test 어노테이션을 이용하여 패키지를 지정할 수 있습니다. 아래는 예제 코드입니다.

package com.example.tests;

import org.testng.annotations.Test;

@Test(groups = "package")
public class PackageTests {
    @Test
    public void testCase1() {
        // 패키지 단위 테스트 1
    }

    @Test
    public void testCase2() {
        // 패키지 단위 테스트 2
    }
}

위 코드에서 @Test(groups = "package") 어노테이션은 해당 클래스를 패키지 단위로 테스트 대상으로 지정하고 있습니다. testCase1()testCase2() 메서드는 실제로 테스트 케이스를 구현한 것이며, 원하는 테스트를 추가로 작성할 수 있습니다.

클래스 단위 테스트

특정 클래스를 테스트하려면, 해당 클래스에 대해 테스트 메서드를 작성해야 합니다. 아래는 예제 코드입니다.

package com.example.tests;

import org.testng.annotations.Test;

@Test(groups = "class")
public class ClassTests {
    @Test
    public void testCase1() {
        // 클래스 단위 테스트 1
    }

    @Test
    public void testCase2() {
        // 클래스 단위 테스트 2
    }
}

위 코드에서도 @Test(groups = "class") 어노테이션을 이용하여 해당 클래스를 클래스 단위로 테스트 대상으로 지정하고 있습니다. 마찬가지로 원하는 테스트 메서드를 작성하면 됩니다.

XML 설정 파일

TestNG는 XML 설정 파일을 통해 테스트 실행에 대한 세부적인 설정을 할 수 있습니다. XML 파일을 사용하면 테스트 그룹, 테스트 실행 순서, 테스트 리스너 등을 지정할 수 있습니다. 아래는 예제 XML 설정 파일입니다.

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test Suite" >
    <test name="Package Tests" >
        <packages>
            <package name="com.example.tests" />
        </packages>
    </test>
    <test name="Class Tests" >
        <classes>
            <class name="com.example.tests.ClassTests" />
        </classes>
    </test>
</suite>

위 XML 설정 파일에서는 Package Tests라는 이름의 테스트 그룹을 생성하고, com.example.tests 패키지를 포함하는 패키지 단위 테스트를 지정하고 있습니다. 마찬가지로 Class Tests라는 이름의 테스트 그룹을 생성하고, com.example.tests.ClassTests 클래스를 클래스 단위 테스트로 지정하였습니다.

실행

JUnit과 마찬가지로 TestNG도 Maven 등의 빌드 도구와 함께 사용할 수 있습니다. 빌드 도구를 통해 TestNG 의존성을 추가하고, 테스트를 실행하면 됩니다. XML 설정 파일을 사용할 경우에는 설정 파일의 경로를 지정하면 됩니다.

위에서 작성한 테스트 코드를 실행하기 위해 TestNG를 다운로드 받아 사용할 수 있습니다. 또는 Maven 등의 의존성 관리 도구를 통해 TestNG를 가져올 수도 있습니다. 아래는 Maven을 사용하여 TestNG를 가져올 수 있는 예제 코드입니다.

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.4.0</version>
    <scope>test</scope>
</dependency>

위 Maven 의존성을 추가하고, mvn test 명령을 사용하여 테스트를 실행하면 됩니다.

결론

TestNG는 패키지 단위와 클래스 단위로 테스트를 실행할 수 있는 강력한 테스트 프레임워크입니다. 올바른 테스트 그룹을 만들고 테스트 코드를 작성하여 손쉽게 단위 테스트를 진행할 수 있습니다. TestNG의 다양한 기능을 활용하여 테스트 코드를 보다 유연하게 작성해보세요.

박스잔나의 블로그에서 다른 프로그래밍 및 개발 관련 정보를 더 알아보세요!