본문으로 건너뛰기

소개

AutoParams는 Java에서 매개변수화된 테스트를 위해 설계된 임의의 테스트 데이터 생성기로, AutoFixture에서 영감을 얻었습니다.

테스트 데이터를 수동으로 구성하는 것은 번거로울 수 있으며, 특히 특정 데이터가 필요하지만 특정 테스트에 중요하지 않은 경우 더욱 그렇습니다. AutoParams는 매개변수화된 메서드에 대한 테스트 인수를 자동으로 생성하여 이러한 번거로움을 없애고 도메인별 요구 사항에 더 집중할 수 있도록 합니다.

AutoParams를 사용하는 것은 간단합니다. @ValueSource 또는 @CsvSource 주석을 사용하는 것과 같은 방식으로 매개변수화된 테스트 메서드에 @AutoSource 주석을 달기만 하면 됩니다. 이 작업이 완료되면 AutoParams가 적절한 테스트 인수를 자동으로 생성합니다.

@ParameterizedTest
@AutoSource
void parameterizedTest(int a, int b) {
Calculator sut = new Calculator();
int actual = sut.add(a, b);
assertEquals(a + b, actual);
}
@ParameterizedTest
@AutoSource
void parameterizedTest(int a, int b) {
Calculator sut = new Calculator();
int actual = sut.add(a, b);
assertEquals(a + b, actual);
}

위의 예에서 AutoParams에 의한 테스트 데이터의 자동 생성은 잠재적으로 테스트에서 삼각 측량의 필요성을 없애 테스트 프로세스를 간소화할 수 있습니다.

AutoParams는 또한 테스트 설정 코드 작성을 간소화합니다. 예를 들어, 단일 제품에 대한 여러 리뷰 엔터티를 생성해야 하는 경우 @Freeze 주석을 사용하여 이를 손쉽게 달성할 수 있습니다.

@AllArgsConstructor
@Getter
public class Product {
private final UUID id;
private final String name;
private final BigDecimal priceAmount;
}
@AllArgsConstructor
@Getter
public class Review {
private final UUID id;
private final Product product;
private final String comment;
}
@ParameterizedTest
@AutoSource
void testMethod(@Freeze Product product, Review[] reviews) {
for (Review review : reviews) {
assertSame(product, review.getProduct());
}
}

That's cool!