[TIL] Mock 테스트에서의 UnnecessaryStubbingException

YJin·2025년 7월 13일

[내배캠 Spring 6기_TIL]

목록 보기
54/56
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

org.mockito.exceptions.misusing.UnnecessaryStubbingException: 
Unnecessary stubbings detected.
Clean & maintainable test code requires zero unnecessary code.
Following stubbings are unnecessary (click to navigate to relevant line of code):
  1. -> at com.example.taste.domain.user.service.UserServiceUnitTest.getUserProfile(UserServiceUnitTest.java:35)
Please remove unnecessary stubbings or use 'lenient' strictness. More info: javadoc for UnnecessaryStubbingException class.

	at org.mockito.junit.jupiter.MockitoExtension.afterEach(MockitoExtension.java:192)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)


Mock으로 테스트 중 이런 오류가 발생하였다.
UnnecessaryStubbingException은 Mockito에서 설정했지만 실제 테스트 흐름에서 stubbing이 쓰이지 않을 때 발생하는 오류라고 한다.


when(userRepository.findById(any())).thenReturn(Optional.of(...));

내가 작성한 테스트코드에서 이렇게 stubbing을 해놨는데, 이게 테스트 중 호출이 되지 않아 발생한 문제였다.

사용하지 않는 stubbing 이면 지우거나 주석처리를 해두도록 하자.

profile
백엔드 개발도 락이다

0개의 댓글