반응형

SpringBootTest 3

3편. 단위 테스트와 Slice Test - 무엇을 어디까지 로딩할 것인가

이 글은 Spring Framework / Spring Boot 공식 문서(Testing)를 기반으로, Spring 테스트에서 가장 중요한 설계 질문인 “이 테스트에서 무엇을 어디까지 로딩해야 하는가”에 답합니다.테스트가 느려지고 복잡해지는 이유의 대부분은, 이 질문에 대한 기준이 없기 때문입니다.들어가며Spring 테스트를 작성하다 보면 다음 두 선택지 앞에 서게 됩니다.간단하니까 @SpringBootTest로 한 번에 끝내자Context 없이 빠르게 테스트하고 싶다이 선택은 단순 취향 문제가 아니라, 테스트 설계 문제입니다.1. Unit Test - Spring 없이 테스트하기Unit Test의 핵심은 명확합니다.하나의 클래스, 하나의 책임만 검증한다이 테스트는Spring Context를 띄우지 않고..

2편. Spring TestContext Framework - ApplicationContext와 테스트 생명주기

이 글은 Spring Framework 공식 문서(Testing)를 기반으로, Spring 테스트의 핵심 인프라인 TestContext Framework가 ApplicationContext를 어떻게 생성하고, 어떻게 재사용하며, 왜 테스트 성능에 결정적인 영향을 미치는지를 정리합니다.1편에서 테스트의 철학과 전략을 다뤘다면, 이번 편은 Spring 테스트가 실제로 어떻게 동작하는지를 이해하는 출발점입니다.들어가며Spring 테스트를 작성하다 보면 이런 현상을 경험하게 됩니다.테스트 하나 추가했을 뿐인데 전체 테스트가 느려졌다같은 설정인데 어떤 테스트는 빠르고, 어떤 테스트는 느리다@SpringBootTest가 왜 이렇게 무거운지 모르겠다이 문제의 대부분은 ApplicationContext의 생성과 재사용..

[Spring Boot 공식 문서 정리] 25. Spring Boot Test는 왜 이렇게 설계됐을까

24편에서는 Startup 성능과 Lazy Initialization을 통해 언제 빠르게 시작하는 것이 좋은 선택인지를 다뤘다.이번 글에서는 그 다음 단계, 개발자가 가장 자주 만지고 가장 자주 불평하는 영역, Spring Boot Test를 다룬다.“왜 테스트가 이렇게 느리지?” “@SpringBootTest 말고 뭐가 다른 거야?” 같은 질문에 구조적으로 답할 수 있게 되는 것이 목표다.1) Spring Boot Test의 출발점은 “신뢰 가능한 기본값”이다Spring Boot Test의 기본 철학은 단순하다. “실제 애플리케이션과 최대한 비슷한 환경에서 테스트하자.” 그래서 기본 테스트 어노테이션이 @SpringBootTest다.이는 “가장 무거운 선택”이 아니라, 가장 안전한 출발점이다.테스트가 ..

반응형