Spring/Spring Test 3

[Spring][Test] 3. Testing Annotations

1. 주요 애너테이션애노테이션목적@BootstrapWith테스트 컨텍스트 부트스트래퍼를 커스터마이징할 때 사용@ContextConfiguration테스트 컨텍스트를 구성할 설정을 지정(XML, 자바 설정 클래스 등)@WebAppConfigurationWebApplicationContext 로딩을 명시하여 웹 환경에서 테스트MockServletContext 기반 설정@ContextHierarchy부모-자식 컨텍스트 계층 구조를 정의@TestPropertySource테스트용 프로퍼티 파일 또는 인라인 프로퍼티 지정@TestBean (Spring 6.1+)기존 빈을 오버라이드하거나 테스트 전용 빈 정의@MockitoBean기존 빈을 Mock 객체로 대체@MockitoSpyBean기존 빈을 Spy 객체로 래핑@..

Spring/Spring Test 2025.04.21

[Spring][Test] 2. Integration Testing

1. spring-test 모듈외부 시스템과 연결하지 않고도 통합테스트를 하도록 지원함다양한 테스트 프레임워크와 연동됨 (JUnit, TestNG 등) 2. 테스트 클래스에 의존성 주입TestContext테스트 실행 중의 상태와 메타데이터를 캡슐화한 객체입니다.전체 테스트 컨텍스트의 흐름을 관리기능설명🔁 ApplicationContext 관리테스트 시 사용할 스프링 컨텍스트(ApplicationContext)를 생성하고, 재사용을 위해 캐싱함💉 의존성 주입 지원@Autowired, @Value, @MockBean 등을 통해 테스트 클래스에도 빈 주입 가능🔄 트랜잭션 관리@Transactional을 테스트에 적용해 자동 롤백 같은 트랜잭션 기능 제공🔧 테스트 라이프사이클 관리@BeforeEach, ..

Spring/Spring Test 2025.04.21

[Spring][Test] 1. Unit Testing

1. 단위 테스트 테스트 시에는 코드를 독립적으로 테스트할 수 있어야 해요. (Spring 없이도 테스트가 가능해야 함)Spring의 Dependency Injection 덕분에, J2EE 전통 방식보다 컨테이너에 덜 의존적인 코드 작성이 가능POJO(Plain Old Java Object) 중심의 구조를 만들 수 있음순수한 자바 코드로 작성된 객체로 설계 가능 (특별한 인터페이스나 어노테이션 등에 의존 ❌)객체를 직접 생성하여 테스트할 수 있음을 의미함 장점항목설명Spring IoC와의 연관성⚡ 빠른 실행 속도DB나 서버 등 외부 시스템 없이 실행 가능IoC로 객체를 외부에서 주입하므로, 테스트 시 Mock/Stubs로 대체 가능🛠️ 테스트 주도 개발(TDD)에 유리빠르고 반복적인 테스트 작성 가능P..

Spring/Spring Test 2025.04.19