값의 범위 제한
@Min
및 @Max
어노테이션을 사용하여 특정 매개변수에 대해 생성되는 임의의 값의 범위를 제한할 수 있습니다. 이러한 어노테이션을 사용하면 각각 최소 및 최대 범위를 설정하여 생성된 값이 지정된 범위 내에 속하도록 할 수 있습니다.
사용 방법
매개변수의 범위를 설정하려면 @Min
어노테이션을 달아 최소값을 정의하고, @Max
어노테이션을 달아 최대값을 정의하면 됩니다.
다음은 그 예입니다.
- Java
- Kotlin
@ParameterizedTest
@AutoSource
void testMethod(@Min(1) @Max(10) int value) {
assertTrue(value >= 1);
assertTrue(value <= 10);
}
@ParameterizedTest
@AutoSource
fun testMethod(@Min(1) @Max(10) value: Int) {
assertTrue(value >= 1)
assertTrue(value <= 10)
}
이 테스트에서 값 매개변수는 항상 1
이상 10
이하의 정수입니다.
지원되는 유형
@Min
및 @Max
어노테이션은 다음 유형과 호환됩니다.
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
혜택
- 제어된 무작위성: 이 어노테이션은 무작위성의 범위를 미세하게 조정하여 더 집중적이고 의미 있는 테스트를 수행하는 데 도움이 됩니다.
- 테스트의 불안정성 감소: 값의 범위를 제한함으로써 테스트가 불안정해질 수 있는 예외 상황이 발생할 위험을 줄일 수 있습니다.
- 가독성 향상:
@Min
과@Max
를 사용하면 독자에게 어떤 범위의 값을 테스트하는지 명확하게 전달하여 테스트 코드의 가독성과 유지보수성을 향상시킵니다.
@Min
과 @Max
어노테이션을 @AutoSource
와 함께 사용하면 무작위성과 예측 가능성을 균형 있게 혼합하여 매개변수화된 테스트를 다재다능하고 안정적으로 만들 수 있습니다.