인프런 커뮤니티 질문&답변

은아님의 프로필 이미지
은아

작성한 질문수

스프링 핵심 원리 - 기본편

중복 등록과 충돌

수동, 자동빈 중복 등록 시 테스트코드에선 오류가 나지 않는 이유

작성

·

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입니다.

은아님의 프로필 이미지
은아

작성한 질문수

질문하기