본문으로 건너뛰기
버전: 10.x

autoparams-spring

스프링 애플리케이션을 테스트할 때 다음 두 가지가 모두 필요한 경우가 많습니다.

  • Spring IoC 컨테이너에서 제공하는 Bean
  • AutoParams에 의해 자동으로 생성된 임의의 테스트 데이터

autoparams-spring 확장은 이 두 가지 요구 사항을 연결하여 스프링에서 관리되는 빈AutoParams에서 생성된 인수를 나란히 수신하는 테스트 메서드를 작성할 수 있도록 해줍니다.

즉, 최소한의 설정으로 애플리케이션 컨텍스트에서 서비스 구성 요소를 자동으로 주입하는 동시에 자동으로 생성된 테스트 데이터를 사용하는 테스트를 작성할 수 있습니다.

설치하기

Maven

Maven을 사용한다면, pom.xml에 다음 종속성을 추가하세요.

<dependency>
<groupId>io.github.autoparams</groupId>
<artifactId>autoparams-spring</artifactId>
<version>10.1.0</version>
</dependency>

Gradle (Groovy)

Gradle Groovy DSL을 사용한다면, build.gradle에 다음 종속성을 추가하세요.

testImplementation 'io.github.autoparams:autoparams-spring:10.1.0'

Gradle (Kotlin)

Gradle Kotlin DSL을 사용한다면, build.gradle.kts에 다음 종속성을 추가하세요.

testImplementation("io.github.autoparams:autoparams-spring:10.1.0")

@UseBeans 애너테이션

스프링 애플리케이션에 MessageSupplier 인터페이스를 구현하는 HelloSupplier 빈이 있다고 가정해 보겠습니다.

public interface MessageSupplier {

String getMessage(String name);
}
@Component
public class HelloSupplier implements MessageSupplier {

@Override
public String getMessage(String name) {
return "Hello, " + name + "!";
}
}

MessageSupplier 빈이 어떻게 동작하는지 테스트하려면 다음과 같이 @UseBeans 애너테이션을 사용할 수 있습니다.

@SpringBootTest
class TestClass {

@Test
@AutoParams
@UseBeans
void testMethod(MessageSupplier service, String name) {
String message = service.getMessage(name);
assertTrue(message.startsWith("Hello"));
assertTrue(message.contains(name));
}
}

이 테스트는 다음과 같습니다.

  • service 매개변수는 스프링 빈이 자동으로 주입됩니다.
  • name 매개변수는 AutoParams에 의해 무작위로 생성됩니다.

이를 통해 실제 스프링 구성 요소를 생성된 테스트 데이터와 원활하게 결합하여 테스트를 간결하면서도 표현력 있게 만들 수 있습니다.