본문으로 건너뛰기

@Freeze

AutoParams는 생성된 인수의 값을 고정할 수 있는 @Freeze 어노테이션을 제공합니다. @Freeze 어노테이션을 사용하여 인수가 고정되면 @AutoSource는 동일한 테스트 메서드 내에서 동일한 유형의 후속 매개변수에 대해 이 고정된 값을 재사용합니다.

사용 방법

테스트 메서드에서 매개변수를 @Freeze 어노테이션으로 장식하기만 하면 됩니다. 이렇게 하면 AutoParams가 다른 매개변수에 대한 새 값을 생성하는 동안 해당 매개변수의 값을 일정하게 유지하도록 지시합니다.

다음은 그 예입니다.

@AllArgsConstructor
@Getter
public class ValueContainer {
private final String value;
}
@ParameterizedTest
@AutoSource
void testMethod(@Freeze String arg1, String arg2, ValueContainer arg3) {
assertEquals(arg1, arg2);
assertEquals(arg1, arg3.getValue());
}

위의 예에서 arg1의 값은 @Freeze 어노테이션으로 고정됩니다. 이 테스트는 arg1arg2와 같고 arg3의 value 속성과도 같은지 확인합니다. 결과적으로 arg1, arg2arg3.getValue()@Freeze 어노테이션 덕분에 모두 동일한 문자열 값을 포함하게 됩니다.

혜택

  1. 일관성: @Freeze는 특정 값이 일정하게 유지되도록 보장하여 테스트에서 다양한 매개변수 간의 관계를 더 쉽게 검증할 수 있도록 해줍니다.
  2. 테스트 로직 간소화: 여러 매개변수에서 고정된 값을 재사용하면 테스트 로직이 간소화되고 테스트를 더 쉽게 읽고 유지 관리할 수 있습니다.
  3. 무작위성 제어: @AutoSource가 무작위 값 생성의 이점을 제공하는 반면, @Freeze는 테스트 전반에 걸쳐 특정 값을 일관되게 유지해야 할 때 제어할 수 있습니다.

@Freeze 어노테이션은 특정 테스트 매개변수의 일관성을 유지하면서 AutoParams가 제공하는 무작위성과 커버리지를 활용해야 하는 시나리오에 유용한 기능입니다.