본문 바로가기
Dev. Cookbook/Spring, Spring Boot

[JUnit] MockitoAnnotations.initMocks is Deprecated

by breezyday 2022. 12. 13.

최근 책을 보면서 예제를 코딩하면서 Mockito에 대해 접하고 사용하기 시작했습니다. 그런데 소스 코드를 입력하는데 몇 가지 에러(error)와 경고(Warning)를 만났고 그중 하나가 MockitoAnnotations.initMocks is deprecated입니다.

 


 

 

v실제 소스코드를 따라가 보니 initMocks() 메서드에는 @Deprecated 어노테이션이 선언되어 있습니다. 앞으로 더 이상 사용하지 않고 사라지게 될 것이라는 의미입니다. 가능하면 이 함수를 대신할 다른 함수나 방법을 찾아야 하는데 주석을 보면 openMocks()을 사용하라고 나와 있습니다. 

 

바로 위에 openMocks() 메서드도 있네요. 파라미터도 동일하게 사용하고 있어서 간단히 메서드 명만 바꾸어 주면 됩니다. 

	@BeforeEach
	public void setup() {
		// MockitoAnnotations.initMocks(this);
		MockitoAnnotations.openMocks(this);
	}

당장은 initMocks()를 사용해도 테스트에 문제가 없지만, Warning이 계속 눈에 띄는 것도 신경 쓰이니 가능하면 바로 openMocks() 메서드로 변경해 주는 것이 좋겠습니다. 

 

그리고 이 문제를 해결하기 위해 구글링을 하다가 한 번 읽어두면 좋을 만한 링크를 찾아서 함께 첨부해 둡니다.

 

참고

https://www.baeldung.com/tag/mockito

https://www.baeldung.com/mockito-deprecated-mockitojunitrunner

https://www.baeldung.com/junit-5-migration#1-annotations

 

 

 

 

 

 

댓글