
@ExtendWith는 JUnit 5 테스트에서 Spring 확장을 활성화하는 데 사용된다. 사용 시에는 확장 클래스를 지정해야 하며, 해당 확장 클래스는 테스트에 대해 수행하려는 작업을 구현한다.
SpringExtension은 JUnit와 스프링 프레임워크를 통합하기 위한 JUnit 5 확장 클래스이다. 스프링의 테스트 기능을 JUnit 5와 통합하기 위해 사용되며, 테스트 메소드 실행 전/후에 스프링 컨텍스트를 초기화하고 정리하는 작업을 처리한다.
SpringExtension을 사용하기 위해서는 클래스 레벨에 @ExtendWith(SpringExtension.class)를 선언하여 확장을 활성화해야한다. 이를 통해 테스트에서 스프링의 다양한 기능(의존성 주입, 트랜잭션 관리, 테스트 컨텍스트 로딩 등)을 쉽게 활용할 수 있다.
@ExtendWith(SpringExtension.class)를 통해 확장을 활성화하여 스프링 부트 테스트와 같은 유용한 기능을 사용할 수 있다.
@SpringBootTest는 Spring Boot 테스트임을 지정하는 데 사용된다.
이는 테스트 클래스에 대한 테스트 환경을 설정하는 데 매우 편리하며, 주로 통합 테스트 시나리오에서 활용된다.
@SpringBootTest는 실제 애플리케이션과 유사한 방식으로 동작하기 때문에 이를 통해 애플리케이션의 모든 빈을 로드하고 구성할 수 있다.
이 어노테이션을 사용하면 테스트에서 실제 빈을 사용하여 테스트를 수행할 수 있다.
주로 통합 테스트 시나리오에서 사용되며, Spring Boot 애플리케이션의 다양한 컴포넌트를 테스트할 수 있다. 컨트롤러, 서비스, 리포지토리 등을 포함한다.
@SpringBootTest는 Spring Boot 애플리케이션의 행동을 통합적으로 테스트하는 데 사용된다. 또한 테스트를 위해 Spring Boot의 다양한 유용한 기능들을 자동으로 구성해주어 테스트 작성을 더욱 편리하게 만든다.
@ExtendWith(SpringExtension.class)는 JUnit 5 테스트에서 Spring의 테스트 지원을 활성화하고, @SpringBootTest는 특히 Spring Boot 애플리케이션 컨텍스트를 테스트 목적으로 구성한다. 이 두 어노테이션은 Spring Boot 프로젝트에서 Spring 기능을 활성화하고 애플리케이션 컨텍스트를 테스트하기 위해 함께 사용된다.