728x90 junit52 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. JUnit5 + Mockito로 Java 테스트 커버리지 100% 달성하는 법 (실전 사례 코드 포함) 1. 시작하며요즘 내 주요 업무는 테스트 커버리지를 100%까지 끌어올리는 것이다. 단순히 테스트 코드를 “적당히” 추가하는 수준이 아니라, 정말 모든 분기와 예외 흐름까지 다 커버하는 테스트를 작성해야 했다. 심지어 클래스 내부는 수정할 수 없고, 테스트 코드만으로 커버리지를 맞춰야 했다. 처음엔 막막했지만, 하나씩 부딪히면서 쌓은 노하우들을 정리해본다. 스터디나 동료에게 설명할 때도 쓰고, 블로그 공유용으로도 활용할 수 있도록 작성했다.2. 테스트 커버리지란? 테스트 커버리지(Test Coverage)는 “작성한 테스트 코드가 실제 프로덕션 코드를 얼마나 실행했는가”를 측정하는 지표이다. 커버리지를 통해 테스트가 로직 전체를 충분히 검증하고 있는지를 수치로 확인할 수 있다. 📊 대표적인 커버리지 기.. 2025. 6. 9. 이전 1 다음 728x90