@Freeze
AutoParams는 생성된 인수의 값을 고정할 수 있는 @Freeze
어노테이션을 제공합니다. @Freeze
어노테이션을 사용하여 인수가 고정되면 @AutoSource
는 동일한 테스트 메서드 내에서 동일한 유형의 후속 매개변수에 대해 이 고정된 값을 재사용합니다.
사용 방법
테스트 메서드에서 매개변수를 @Freeze
어노테이션으로 장식하기만 하면 됩니다. 이렇게 하면 AutoParams가 다른 매개변수에 대한 새 값을 생성하는 동안 해당 매개변수의 값을 일정하게 유지하도록 지시합니다.
다음은 그 예입니다.
- Java
- Kotlin
@AllArgsConstructor
@Getter
public class ValueContainer {
private final String value;
}
class ValueContainer(val value: String)
- Java
- Kotlin
@ParameterizedTest
@AutoSource
void testMethod(@Freeze String arg1, String arg2, ValueContainer arg3) {
assertEquals(arg1, arg2);
assertEquals(arg1, arg3.getValue());
}
@ParameterizedTest
@AutoSource
fun testMethod(@Freeze arg1: String, arg2: String, arg3: ValueContainer) {
assertEquals(arg1, arg2)
assertEquals(arg1, arg3.value)
}
위의 예에서 arg1
의 값은 @Freeze
어노테이션으로 고정됩니다. 이 테스트는 arg1
이 arg2
와 같고 arg3
의 value 속성과도 같은지 확인합니다. 결과적으로 arg1
, arg2
및 arg3.getValue()
는 @Freeze
어노테이션 덕분에 모두 동일한 문자열 값을 포함하게 됩니다.
혜택
- 일관성:
@Freeze
는 특정 값이 일정하게 유지되도록 보장하여 테스트에서 다양한 매개변수 간의 관계를 더 쉽게 검증할 수 있도록 해줍니다. - 테스트 로직 간소화: 여러 매개변수에서 고정된 값을 재사용하면 테스트 로직이 간소화되고 테스트를 더 쉽게 읽고 유지 관리할 수 있습니다.
- 무작위성 제어:
@AutoSource
가 무작위 값 생성의 이점을 제공하는 반면,@Freeze
는 테스트 전반에 걸쳐 특정 값을 일관되게 유지해야 할 때 제어할 수 있습니다.
@Freeze
어노테이션은 특정 테스트 매개변수의 일관성을 유지하면서 AutoParams가 제공하는 무작위성과 커버리지를 활용해야 하는 시나리오에 유용한 기능입니다.