[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