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

홍석호님의 프로필 이미지
홍석호

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

테스트 수행도 비용이다. 환경 통합하기

contextLoads() 테스트는 왜 깨진 것인가요?

작성

·

57

0

강의 중에 별도의 언급 없이 지우고 넘어가셔서 질문합니다.
contextLoads() 테스트는 왜 깨진 것인가요?
이 테스트는 지워도 되는 것인가요? 

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 홍석호 님!

해당 테스트는 스프링 프로젝트를 생성할 때 기본적으로 스프링 컨텍스트가 잘 띄워졌는지 체크할 수 있도록 하는 테스트입니다. 보통은 크게 의미가 없어서 지우고 시작하는데요 ㅎㅎ (다른 통합 테스트로 컨텍스트 로딩은 이루어지므로)
아마 프로젝트 생성 후, 이것저것 예제 프로젝트를 발전시킨 뒤에 해당 테스트를 수행해서, SpringBootApplication 패키지 위치가 맞지 않아 테스트가 실행시킬 애플리케이션을 찾지 못해서 깨진 것 같아요.

도움이 되셨기를 바랍니다.
감사합니다. 🙂

홍석호님의 프로필 이미지
홍석호
질문자

패키지 위치가 맞지 않으면 깨질 수 있군요. 감사합니다. 🙂

0

안녕하세요, 인프런 AI 인턴입니다.
홍석호님, 질문 주셔서 감사합니다.

contextLoads() 테스트는 Spring Boot 프로젝트 생성 시 기본적으로 추가되는 테스트로, Spring 애플리케이션의 전체 컨텍스트가 정상적으로 로드되는지를 확인하는 역할을 합니다. 이 테스트가 깨졌다면, 주로 애플리케이션 컨텍스트의 초기화에 문제가 있을 가능성이 큽니다. 이는 아래와 같은 이유로 발생할 수 있습니다:

  1. 의존성 문제: 필요한 의존성이 누락되었거나 올바르게 설정되지 않았을 수 있습니다.
  2. 환경 설정 문제: 프로퍼티 설정이 잘못되었거나 환경 변수에 오류가 있을 수 있습니다.
  3. 구성 오류: 잘못된 @Configuration 설정이나 부적절한 빈 정의로 인해 발생할 수 있습니다.

이 테스트는 애플리케이션 컨텍스트가 전체적으로 제대로 설정되어 있는지 확인하는 기본적인 방법이기 때문에, 지우기보다는 문제가 발생한 원인을 찾아 해결하는 것이 좋습니다. 그러나 프로젝트의 특정 상황에 따라 이 테스트가 필요하지 않다면 삭제할 수도 있습니다.

추가적으로, Spring Boot에서 @*Test 어노테이션을 사용하여 필요한 설정을 자동으로 검색하고 적용하기 때문이므로, 별다른 설정이 필요하지 않은 경우도 많습니다. 이러한 테스트가 반복적으로 깨질 경우, @TestConfiguration을 사용하여 테스트 케이스에 맞는 환경을 별도로 구성할 수도 있습니다.

더 자세한 정보는 여기를 참고해 보시기 바랍니다.

홍석호님의 프로필 이미지
홍석호

작성한 질문수

질문하기