TestNG는 자바용 테스트 프레임워크로, 파라미터화된 테스트와 데이터 드리븐 테스트를 지원합니다. 이를 통해 테스트 케이스를 더 유연하고 재사용 가능하게 만들 수 있습니다.
파라미터화된 테스트(Parameterized Tests)
파라미터화된 테스트는 동일한 테스트 메서드를 여러 번 실행하면서 다른 값을 사용할 수 있도록 해줍니다. 예를 들어, 같은 동작을 하는 메서드에 여러 입력값을 주고 결과를 확인할 수 있습니다.
어노테이션을 사용한 파라미터화된 테스트
TestNG에서는 @Parameters
어노테이션을 사용하여 파라미터화된 테스트를 구현할 수 있습니다. 먼저, 테스트 클래스에서 파라미터를 정의하는 메서드를 작성합니다.
@Parameters({"param1", "param2"})
@BeforeMethod
public void setUp(String param1, int param2) {
// 파라미터 사용 예제
}
그런 다음, @Test
어노테이션 위에 @Parameters
어노테이션을 추가하여 파라미터 값을 전달합니다.
@Test
@Parameters({"param1", "param2"})
public void myTest(String param1, int param2) {
// 테스트 실행
}
XML 파일을 사용한 파라미터화된 테스트
또 다른 방법은 XML 파일을 사용하여 파라미터 값을 정의하는 것입니다. 먼저, XML 파일에서 파라미터를 정의합니다.
<parameters>
<parameter name="param1" value="value1"/>
<parameter name="param2" value="value2"/>
</parameters>
그런 다음, <test>
섹션 내에 정의된 파라미터를 참조합니다.
<test name="MyTest">
<parameter name="param1" value="value1"/>
<parameter name="param2" value="value2"/>
<classes>
<class name="com.example.MyTestClass"/>
</classes>
</test>
데이터 드리븐 테스트(Data Driven Tests)
데이터 드리븐 테스트는 테스트 데이터를 외부에서 가져와서 여러 번의 테스트를 실행하는 방법입니다. 이를 통해 다양한 입력 값으로 테스트를 실행하고 결과를 확인할 수 있습니다.
어노테이션을 사용한 데이터 드리븐 테스트
TestNG에서는 @DataProvider
어노테이션을 사용하여 데이터 드리븐 테스트를 구현할 수 있습니다. 데이터를 제공하는 메서드를 작성하고 @DataProvider
어노테이션을 추가합니다.
@DataProvider(name = "myDataProvider")
public Object[][] provideData() {
return new Object[][] {
{ "data1", 1 },
{ "data2", 2 },
{ "data3", 3 }
};
}
다음으로, @Test
어노테이션위에 dataProvider
속성을 사용하여 데이터 프로바이더를 지정합니다.
@Test(dataProvider = "myDataProvider")
public void myTest(String param1, int param2) {
// 테스트 실행
}
XML 파일을 사용한 데이터 드리븐 테스트
데이터 드리븐 테스트를 XML 파일을 사용하여 정의할 수도 있습니다. 먼저, XML 파일에서 데이터를 정의합니다.
<test name="MyTest">
<parameter name="param1" value="data1"/>
<parameter name="param2" value="1"/>
<parameter name="param1" value="data2"/>
<parameter name="param2" value="2"/>
<parameter name="param1" value="data3"/>
<parameter name="param2" value="3"/>
</test>
그런 다음, <test>
섹션 내에 정의된 데이터를 참조합니다.
<test name="MyTest">
<classes>
<class name="com.example.MyTestClass"/>
</classes>
</test>
결론
TestNG의 파라미터화된 테스트와 데이터 드리븐 테스트를 사용하면 테스트 케이스의 유연성과 재사용성을 크게 향상시킬 수 있습니다. 파라미터화된 테스트로 같은 동작을 여러 값으로 테스트하고, 데이터 드리븐 테스트로 다양한 입력 값을 사용하여 테스트를 실행할 수 있습니다.
더 자세한 내용은 TestNG 공식 문서를 참조하시기 바랍니다.