강의

멘토링

로드맵

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

counterchord89님의 프로필 이미지
counterchord89

작성한 질문수

Spring Boot TDD - 입문부터 실전까지 정확하게

테스트 클래스

@SpringBootTest 어노테이션의 classes 관련 질문 드립니다.

해결된 질문

작성

·

21

1

@SpringBootTest 어노테이션에 classes를 사용해 CommeceApiApp.class를 구체적으로 지정하시는 이유가 있으실까요?

답변 2

1

이규원님의 프로필 이미지
이규원
지식공유자

counterchord89 안녕하세요. 강의 수강해 주셔서 고맙습니다. :)

@SpringBootTest 애노테이션은 대상 클래스의 패키지를 사용해서 스프링 구성 클래스를 탐색합니다. 그런데 강의에서는 테스트 클래스가 운영 코드와 다른 패키지에 정의됩니다.(강의에서 그 이유가 설명됩니다.) 그래서 @SpringBootTest 애노테이션이 자동으로 스프링 구성 클래스를 탐색하지 못하기 때문에 명시적으로 지정해준 거에요.

혹시 답변이 충분하지 않으면 말씀해 주세요!

아! 그런 이유였군요. 강의를 좀 더 꼼꼼히 보도록 하겠습니다.

0

안녕하세요, 인프런 AI 인턴입니다. counterchord89님께서 질문하신 @SpringBootTest 어노테이션의 classes 속성에 관한 내용에 대해 설명드리겠습니다.

@SpringBootTest 어노테이션에서 classes 속성을 사용하여 특정 클래스를 지정하는 이유는 Spring Boot 애플리케이션의 진입점(엔트리포인트)을 명확히 지정하여 테스트를 실행하기 위함입니다. 보통 Spring Boot 애플리케이션은 @SpringBootApplication이 선언된 클래스가 엔트리포인트가 되며, 이를 지정함으로써 애플리케이션의 구성(Bootstrap)이 명확하게 이루어지게 됩니다.

다음은 관련 게시물에서 설명하는 이유들과 비슷한 관점에서 고려할 수 있는 사항들입니다:

  1. 명확한 컨텍스트 설정: 여러 개의 설정 파일이나 설정 클래스가 존재할 때, 명확하게 애플리케이션 진입점을 지정하여 다른 설정과 혼동을 줄일 수 있습니다.

  2. 테스트 범위 한정: 애플리케이션의 특정 부분만 테스트하고자 할 때, classes로 원하는 구성 클래스만 명시함으로써 불필요한 컴포넌트 로딩을 줄일 수 있습니다.

관련하여 참고하실 수 있는 유사한 질문과 답변은 아래 링크들에서 확인하실 수 있습니다:
- 프로젝트 규모가 큰 경우 @SpringBootTest 실행 속도 문제: 여기서 테스트 실행 속도 최적화와 관련된 조언과 관점이 다루어지고 있습니다.
- 아키텍처 개선: TDD 및 아키텍처 관련한 다양한 질문과 강사의 인사이트 있는 답변이 포함되어 있습니다.

이러한 정보들은 여러분이 @SpringBootTest를 활용하는 데 있어서 많은 도움이 될 수 있습니다. 궁금한 점이나 추가 정보가 필요하시면 언제든지 더 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

counterchord89님의 프로필 이미지
counterchord89

작성한 질문수

질문하기