java
type_error
ai_generated
true
org.mockito.exceptions.base.MockitoException: Cannot mock/spy class com.example.FinalClass because Mockito cannot mock final classes
ID: java/mockito-spy-on-final-class
80%Fix Rate
88%Confidence
0Evidence
2024-05-08First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 8+ | active | — | — | — |
Root Cause
Mockito cannot mock or spy on final classes by default (requires mockito-inline or Mockito 5+).
generic中文
Mockito 默认无法模拟或间谍化最终类(需要 mockito-inline 或 Mockito 5+)。
Workarounds
-
90% success Use Mockito 5+ which supports mocking final classes by default
// Upgrade to Mockito 5.x in build.gradle // testImplementation 'org.mockito:mockito-core:5.0.0'
-
85% success Add mockito-inline dependency
// Add to build.gradle // testImplementation 'org.mockito:mockito-inline:5.2.0'
Dead Ends
Common approaches that don't work:
-
Removing final keyword from production code
50% fail
Changes production code design; may not be allowed.
-
Using PowerMockito
40% fail
Adds heavy dependency and may cause compatibility issues.