Mockito cannot mock/spy final class 에러 해결 방법

JS · 03 Jan 2020

안드로이드 스튜디오에서 kotlin으로 Mockito를 사용할 때, Mockito cannot mock/spy final class 에러가 발생하였습니다.

org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class com.codechacha.mockito.Example
Mockito cannot mock/spy because :
- final class
....

에러 로그를 보면 Mockito가 final class를 Mock으로 만드려고 했기 때문입니다. kotlin은 기본적으로 클래스가 final 설정되기 때문에 open 키워드로 클래스를 만들지 않았다면 이런 에러가 발생할 수 있습니다.

해결

간단한 해결방법은 build.gralde에 기존에 사용했었던 org.mockito:mockito-core를 제거하고 org.mockito:mockito-inline를 정의하는 것입니다.

testImplementation 'org.mockito:mockito-inline:2.13.0'
//    testImplementation 'org.mockito:mockito-core:2.28.2'

다른 해결 방법

resources/mockito-extensions 위치에 org.mockito.plugins.MockMaker라는 파일을 만들라는데, 해보진 않았습니다. (참고 : android.jlelse.eu)

참고

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.

Recommended Posts

codechachaCopyright ©2019 codechacha