[java] TestNG의 어설션(Assertion) 기능과 검증 방법

TestNG는 자바 기반의 단위 테스트 프레임워크로, 테스트 코드를 작성하고 실행하는 데 도움을 줍니다. 이에는 테스트 결과를 자동으로 검증하는 어설션(Assertion) 기능이 포함되어 있습니다. 어설션은 테스트 코드의 실행 결과와 기대하는 결과를 비교하여 검증하는 역할을 수행합니다.

어설션 기능 사용법

TestNG에서 어설션을 사용하는 방법은 매우 간단합니다. 우선, org.testng.Assert 클래스를 import 해야 합니다. 그런 다음, 다양한 어설션 메서드를 사용하여 테스트 결과를 검증할 수 있습니다.

import org.testng.Assert;

...

@Test
public void testSum() {
    // 테스트할 메서드를 호출하고 결과를 변수에 저장
    int result = SomeClass.sum(2, 3);
    
    // 어설션을 사용하여 결과를 검증
    Assert.assertEquals(result, 5); // 결과와 기대하는 값이 같은지 확인
    Assert.assertTrue(result > 0); // 결과가 양수인지 확인
    Assert.assertFalse(result < 0); // 결과가 음수가 아닌지 확인
    Assert.assertNotEquals(result, 0); // 결과와 기대하는 값이 다른지 확인
}

위의 예시에서 testSum 메서드는 SomeClass.sum 메서드를 호출하고, 그 결과를 result 변수에 저장합니다. 그런 다음, 어설션을 사용하여 result 값을 검증합니다.

검증 방법

TestNG의 어설션을 사용하여 검증할 수 있는 다양한 방법이 있습니다. 일반적으로 사용되는 몇 가지 방법을 소개하겠습니다.

assertEquals(expected, actual)

두 값이 서로 같은지 비교합니다. assertEquals 메서드는 첫 번째 매개변수로 기대하는 값(expected)을, 두 번째 매개변수로 실제 값(actual)을 받습니다. 예를 들어, Assert.assertEquals(result, 5)result가 5와 같은지 확인합니다.

assertTrue(condition)

주어진 조건이 참인지 확인합니다. assertTrue 메서드는 매개변수로 받은 조건(condition)이 참인지 확인합니다. 예를 들어, Assert.assertTrue(result > 0)result가 양수인지 확인합니다.

assertFalse(condition)

주어진 조건이 거짓인지 확인합니다. assertFalse 메서드는 매개변수로 받은 조건(condition)이 거짓인지 확인합니다. 예를 들어, Assert.assertFalse(result < 0)result가 음수가 아닌지 확인합니다.

assertNotEquals(expected, actual)

두 값이 서로 다른지 비교합니다. assertNotEquals 메서드는 첫 번째 매개변수로 기대하는 값(expected)을, 두 번째 매개변수로 실제 값(actual)을 받습니다. 예를 들어, Assert.assertNotEquals(result, 0)result가 0과 다른지 확인합니다.

결론

TestNG의 어설션 기능은 자동으로 테스트 결과를 검증하는 데 유용한 도구입니다. 기대하는 결과와 실제 결과를 비교하여 테스트를 수행하고, 검증 결과를 통해 코드의 정확성을 확인할 수 있습니다. 어설션을 적절히 활용하여 효과적인 단위 테스트를 작성해 보세요.

참고 자료