728x90 mockito3 Mockito로 static 메서드와 생성자(mockConstruction) 완전 제어하기 – 테스트 커버리지 100% 실전 전략 0. 서론: 테스트가 어려운 코드를 테스트 가능하게단위 테스트는 일반적인 Mockito 기능으로 대부분 커버할 수 있다. 그러나 테스트 커버리지 100%를 목표로 하면, 다음과 같은 코드가 문제로 남는다.정적(static) 메서드 호출: LocalDateTime.now(), UUID.randomUUID() 등직접 객체 생성: new S3Uploader(), new ExtensionProxy() 등이들은 의존성 주입 대상이 아니므로 @Mock만으로는 제어할 수 없다. 과거에는 PowerMock을 사용하거나 테스트 자체를 생략하는 방식으로 처리해 왔다. Mockito 3.4.0 이상과 mockito-inline을 함께 사용하면, mockStatic()과 mockConstruction()으로 이러한 코드도 테.. 2025. 6. 13. Spring WebClient 체인 구조와 Mockito를 활용한 테스트 전략 정리 0. 들어가며Spring Boot에서 외부 API를 호출하거나 비동기 HTTP 요청을 보낼 때 WebClient를 자주 사용하게 됩니다.하지만 막상 테스트 코드를 작성하려고 하면 다음과 같은 문제에 자주 부딪힙니다WebClient의 체인 호출이 길고 복잡해서 Mockito로 mocking하기 어려움uri()나 bodyValue()에서 "정의되지 않은 메서드" 에러 발생각 단계의 인터페이스 타입이 다르고 상속 관계가 복잡함이 글에서는 WebClient를 테스트할 때 마주치는 어려움을 해결하기 위해 다음 내용을 단계별로 정리합니다:WebClient의 내부 체인 구조 이해Mockito를 사용한 정확한 mock 설정법실제 테스트 코드 예시와 전략흔한 에러와 그 원인 및 해결법1. WebClient란?Spring.. 2025. 6. 12. JUnit5 + Mockito로 Java 테스트 커버리지 100% 달성하는 법 (실전 사례 코드 포함) 1. 시작하며요즘 내 주요 업무는 테스트 커버리지를 100%까지 끌어올리는 것이다. 단순히 테스트 코드를 “적당히” 추가하는 수준이 아니라, 정말 모든 분기와 예외 흐름까지 다 커버하는 테스트를 작성해야 했다. 심지어 클래스 내부는 수정할 수 없고, 테스트 코드만으로 커버리지를 맞춰야 했다. 처음엔 막막했지만, 하나씩 부딪히면서 쌓은 노하우들을 정리해본다. 스터디나 동료에게 설명할 때도 쓰고, 블로그 공유용으로도 활용할 수 있도록 작성했다.2. 테스트 커버리지란? 테스트 커버리지(Test Coverage)는 “작성한 테스트 코드가 실제 프로덕션 코드를 얼마나 실행했는가”를 측정하는 지표이다. 커버리지를 통해 테스트가 로직 전체를 충분히 검증하고 있는지를 수치로 확인할 수 있다. 📊 대표적인 커버리지 기.. 2025. 6. 9. 이전 1 다음 728x90