[java] TestNG를 사용한 데이터베이스 테스트

TestNG는 자바 기반의 테스팅 프레임워크로, 데이터베이스 테스트에도 활용할 수 있습니다. 이번 글에서는 TestNG를 사용하여 데이터베이스를 테스트하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저 프로젝트의 의존성에 TestNG를 추가해야 합니다. Maven으로 프로젝트를 관리하는 경우, pom.xml에 다음 의존성을 추가합니다:

<dependencies>
    <!-- TestNG -->
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.1.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Gradle을 사용한다면, build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    // TestNG
    testImplementation 'org.testng:testng:7.1.0'
}

의존성을 추가하면 TestNG를 사용할 수 있게 됩니다.

2. 데이터베이스 테스트 작성

TestNG를 사용하여 데이터베이스를 테스트하려면 @Test 어노테이션을 사용하여 테스트 메서드를 작성해야 합니다. 예를 들어, 데이터베이스에 접속하여 데이터를 조회하는 테스트를 작성해보겠습니다:

import org.testng.Assert;
import org.testng.annotations.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DatabaseTest {

    // 데이터베이스 연결 정보
    private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
    private static final String DB_USER = "username";
    private static final String DB_PASSWORD = "password";

    @Test
    public void testDatabaseQuery() {
        try {
            // 데이터베이스 연결
            Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

            // SQL 쿼리 실행
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

            // 결과 확인
            Assert.assertTrue(resultSet.next());

            // 연결 종료
            resultSet.close();
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
            Assert.fail("데이터베이스 테스트 실패");
        }
    }
}

위 예제에서는 testDatabaseQuery 메서드에 @Test 어노테이션을 붙여 데이터베이스를 테스트합니다. DB_URL, DB_USER, DB_PASSWORD는 실제 데이터베이스 연결 정보로 수정해야 합니다.

테스트 메서드 내에서는 데이터베이스에 접속한 후 SQL 쿼리를 실행하고, 결과를 확인하며 테스트를 수행합니다. 만약 예외가 발생하면 Assert.fail()을 호출하여 테스트를 실패로 처리할 수 있습니다.

3. 테스트 실행

TestNG 테스트를 실행하기 위해서는 테스트 클래스 또는 테스트 스위트를 실행해야 합니다. 여러 방법 중에서 가장 흔한 방법은 Maven 또는 Gradle을 사용하는 것입니다.

Maven 프로젝트의 경우, 프로젝트 루트 디렉토리에서 다음 명령어를 실행합니다:

mvn test

Gradle 프로젝트의 경우, 프로젝트 루트 디렉토리에서 다음 명령어를 실행합니다:

gradle test

테스트 실행 결과는 콘솔에 출력되며, 성공 또는 실패 여부가 표시됩니다.

결론

TestNG를 사용하여 데이터베이스 테스트를 작성하고 실행하는 방법에 대해 알아보았습니다. TestNG는 강력한 기능을 제공하여 다양한 유형의 테스트를 수행할 수 있습니다. 데이터베이스 테스트뿐만 아니라 다른 유형의 테스트에도 활용해보세요. 참고로, 테스트 코드 작성 시에는 좋은 유닛 테스트의 원칙을 따르는 것이 좋습니다.