GitHub
  • @AutoParams 애노테이션

    AutoParams를 처음 만들기 시작할 당시, JUnit 5의 @Test 메서드는 매개변수를 가질 수 없고 매개변수가 있는 테스트는 반드시 @ParameterizedTest를 사용해야 한다고 오해했다. 이런 인식 때문에 @ParameterizedTest와 함께 사용할 수 있는 @AutoSource 애노테이션을 만들었고, 이후 AutoParams의 기능은 이 @AutoSource 애노테이션을 중심으로 확장되었다.

    하지만 시간이 지나고 JUnit 5 API에 대한 이해가 깊어지면서, @Test 메서드도 매개변수를 가질 수 있고, 이를 지원하는 확장 기능을 구현할 수 있다는 점을 알게 되었다.

    이런 배경에서 10.0.0 버전 릴리스에서는 @Test 메서드에 사용할 수 있는 @AutoParams 애노테이션이 새로 추가되었다.

  • @UseBeans 애노테이션을 사용한 AutoParams와 Spring 테스트 통합

    AutoParams의 핵심 모듈은 Spring에 전혀 의존하지 않는다. 이 점은 AutoParams를 다양한 환경에서 가볍게 사용할 수 있다는 장점이 되지만, Spring 기반 테스트에서는 조금 불편함을 유발하기도 한다.

    예를 들어, 테스트 메서드에서 AutoParams가 자동으로 생성해주는 테스트 데이터와 함께 Spring 빈을 매개변수로 받고 싶을 때가 있다. 하지만 별도의 조치를 하지 않으면 AutoParams는 Spring 빈을 직접 생성하려고 시도하고, 이 과정에서 오류가 발생하게 된다.

    이 글은 이 문제를 해결하는 기존의 방식과 10.0.0 버전 릴리스에 추가된 @UseBeans 애노테이션을 사용하는 방식을 비교 설명한다.

  • AutoParams에 도입된 DSL(Domain-Specific Language)

    AutoParams의 10.0.0 버전 릴리스에는 처음으로 DSL(domain-specific language)이 도입됐다. 이 버전에 추가된 DSL은 테스트 데이터를 생성할 때 매개변수 인자를 고정하는 몇 가지 간결한 방법을 제공한다. 이 글은 DSL 사용 사례를 하나를 소개하고 기존 방식과의 차이를 비교한다.