[java] JUnitParams에서의 테스트 데이터 비교 방법은 어떻게 되나요?
JUnitParams를 사용하여 테스트할 때, 테스트 데이터를 비교하는 방법은 다양하게 존재합니다. 다음은 몇 가지 일반적인 예입니다.
- assertThat 메서드를 사용하여 비교하기 ```java import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import junitparams.JUnitParamsRunner; import junitparams.Parameters;
@RunWith(JUnitParamsRunner.class) public class MyTest {
@Test
@Parameters({"1, 1", "2, 2"})
public void testWithParameterizedData(int input, int expected) {
Assert.assertEquals(expected, input);
} } ```
- assertEqual 메서드를 사용하여 비교하기 ```java import org.junit.Test; import org.junit.runner.RunWith; import junitparams.JUnitParamsRunner; import junitparams.Parameters;
@RunWith(JUnitParamsRunner.class) public class MyTest {
@Test
@Parameters({"1, 1", "2, 2"})
public void testWithParameterizedData(int input, int expected) {
assertEquals(expected, input);
} } ```
- 테스트 데이터 객체의 equals() 메서드를 사용하여 비교하기 ```java import org.junit.Test; import org.junit.runner.RunWith; import junitparams.JUnitParamsRunner; import junitparams.Parameters;
@RunWith(JUnitParamsRunner.class) public class MyTest {
@Test
@Parameters({"1, 1", "2, 2"})
public void testWithParameterizedData(MyData input, MyData expected) {
assertEquals(expected, input);
} }
public class MyData { private int value;
public MyData(int value) {
this.value = value;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
MyData other = (MyData) obj;
return this.value == other.value;
} } ```
JUnitParams를 사용하여 테스트를 작성할 때, 각 테스트 메서드의 매개 변수로 테스트 데이터를 전달할 수 있습니다. 이렇게 전달된 데이터는 테스트에서 사용되며, 기대값과 비교하여 결과를 확인할 수 있습니다. 각각의 비교 방법은 테스트에 따라 상황에 맞게 선택하여 사용하면 됩니다.
위의 예시는 몇 가지 비교 방법을 보여줍니다. 테스트 데이터는 @Parameters
어노테이션을 사용하여 설정하고, @Test
어노테이션을 사용하여 테스트 메서드를 표시합니다. JUnitParamsRunner를 사용하여 테스트를 실행합니다. 위 예시에서는 간단한 정수 값을 비교하는 것을 보여주었지만, 객체의 경우 객체의 equals()
메서드를 사용하여 비교할 수도 있습니다.
JUnitParams 라이브러리는 편리하게 테스트 데이터를 정의하고 사용할 수 있는 다양한 기능을 제공합니다. 자세한 내용은 공식 문서를 참조하시기 바랍니다.