작성
·
1.7K
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
수동빈과 자동빈을 중복 등록할 때 테스트코드에서는 에러가 뜨지 않았지만 CoreApplication을 실행시켰을 때는 에러가 납니다. 선생님께서 이는 스프링부트를 사용했을 때 에러가 나게 해주기 때문이라고 하셨었는데, 그렇다면 테스트코드의 Junit에서는 스프링부트가 아닌 스프링을 사용했기 때문에 에러가 나지 않은 건가요? 저희가 스프링부트 환경에서 코드를 작성하고 있는데 Junit에서만 스프링을 쓰는게 가능한가요?
답변 2
2
안녕하세요. 은아님
basicScan() 테스트코드에서는 순수한 스프링 프레임워크를 사용했습니다.
new AnnotationConfigApplicationContext()가 바로 스프링 프레임워크가 제공하는 스프링 컨테이너 인 것이지요.
반면에 CoreApplication에서는 스프링 부트를 실행했습니다.
스프링 부트도 내부에서는 결국 스프링 프레임워크를 사용합니다. 따라서 결과가 같아야 하겠지요?
그런데 스프링 부트는 스프링 프레임워크의 옵션들을 몇가지 수정합니다. 이 옵션들의 차이때문에 이런 다른 결과가 나오게 되었습니다.
감사합니다.
0
저는 테스트 환경에선 에러가 나는데 CoreApplication에서는 에러가 나지 않았습니다. 이것도 영한님이 설명해주신 것과 같은 맥락으로 바라봐도 될까요..부트 버전은 3.0.2이며 JUnit은 5.9.1입니다.