[Spring Boot] JUnit5에서 @RequiredArgsConstructor
들어가기 전
필자는 테스트 코드가 아닌 곳에서 @Autowired가 아닌 @RequiredArgsConstructor를 이용해서 의존성 주입을 편하게 하였습니다.
그런데 필자가 테스트 코드에서도 @RequiredArgsConstructor를 사용하의존성 주입을 하려고 하는 데 사용을 할 수 없다고 나옵니다.
// 의존성 주입이 하나일 경우 Autowired를 생략 가능합니다. // Autowired를 사용할 경우 @Controller public class AutowiredController { @Autowired private TestService service; @AutoWired private TestRepository repository; } // RequiredArgsConstructor를 사용할 경우 @Controller @RequiredArgsConstructor public class RequiredArgsConstructorController { private final TestService service; private final TestRepository repository; }
사용할 수 없는 이유
테스트 코드가 아닌 곳에서는 스프링 컨테이너를 이용하여 빈을 가져와 자동 주입을 하여 @RequiredArgsConstructor도 되고 @Autowired도 사용이 가능합니다.
그러나 테스트 코드에서는 JUnit5 프레임워크를 사용하여 스프링 컨테이너가 아닌 JUnit5가 스스로 지원을 하게 됩니다. 그래서 의존성 주입의 타입이 정해져 있어 @Autowired만 사용이 가능합니다.
테스트 코드
@SpringBootTest public class TestCode { @Autowired TestBean bean; }
테스트 코드가 아닌 경우
@Controller @RequiredArgsConstructor public class TestController { private final TestService; private final TestRepository; } // 또는 @Controller public class TestController { @Autowired private TestService; @Autowired private TestRepository; }
'Spring Boot' 카테고리의 다른 글
[Spring] RestControllerAdvice를 이용한 Validation처리 (0) | 2023.02.11 |
---|---|
[Spring Boot] @ModelAttribute + 객체값 Null일때 해결방법 (2) | 2022.10.25 |
[Spring] 예외처리와 오류 페이지 (0) | 2022.01.04 |
[Spring] 서블릿 Filter와 스프링 Interceptor의 개념과 사용방법 (0) | 2021.12.30 |
[Spring] @ScriptAssert 오류내용 및 해결방법 (0) | 2021.12.28 |
댓글
이 글 공유하기
다른 글
-
[Spring] RestControllerAdvice를 이용한 Validation처리
[Spring] RestControllerAdvice를 이용한 Validation처리
2023.02.11 -
[Spring Boot] @ModelAttribute + 객체값 Null일때 해결방법
[Spring Boot] @ModelAttribute + 객체값 Null일때 해결방법
2022.10.25 -
[Spring] 예외처리와 오류 페이지
[Spring] 예외처리와 오류 페이지
2022.01.04 -
[Spring] 서블릿 Filter와 스프링 Interceptor의 개념과 사용방법
[Spring] 서블릿 Filter와 스프링 Interceptor의 개념과 사용방법
2021.12.30
댓글을 사용할 수 없습니다.