Skip to content

Upgrading org.mockito:mockito-core 4 to 5

Breaking4.11.0 → 5.24.0Breaking3Platform1New32Changed260Fixed64Other81

BreakingUpgrade verdict

3 breaking changes and a platform requirement change.

  • Removes mockito-inline as a subproject and as an actual subproject.
  • Existing code keeps compiling, but compiled classes may need to be rebuilt against Mockito 5.
  • If you run Mockito tests on Android, your test device or emulator must now run Android 9 (API 28) or newer.
  • Mockito 5 needs Java 11 or newer. If you are still on Java 8, keep using Mockito 4.
4 items need code or config changes
Breaking3
Removes mockito-inline as a subproject and as an actual subproject.
mockito-inline
Makes the new ArgumentMatcher.type() method a bytecode-breaking change, though not source-breaking; Mockito 4 code works when recompiled with Mockito 5.
ArgumentMatcherArgumentMatcher.type()
mockito-android tests now require a device or emulator based on API 28+ (Android P) to enable mocking Kotlin classes.
mockito-android
Platform1
Raises the minimum supported Java version to 11; Mockito 4 remains available for JDK 8 and below.

Generated by DepDelta from published JVM bytecode. Not mixed with prose notes.

  • added: interface MockedSingleton extends ScopedMock
  • added: interface ThrowingConsumer extends Consumer
  • added: method Mock.withoutAnnotations(): boolean
  • added: method MockSettings.genericTypeToMock(Type): MockSettings
  • added: method MockedSingleton.getInstance(): Object
  • added: method Spy.mockMaker(): String
  • added: method ThrowingConsumer.accept(Object): void
  • added: method ThrowingConsumer.acceptThrows(Object): void
  • added: static method ArgumentCaptor.captor(Object[]): ArgumentCaptor
  • added: static method ArgumentMatchers.assertArg(Consumer): Object
  • added: static method ArgumentMatchers.assertArg(ThrowingConsumer): Object
  • added: static method Mockito.mock(Answer, Object[]): Object
  • added: static method Mockito.mock(MockSettings, Object[]): Object
  • added: static method Mockito.mock(String, Object[]): Object
  • added: static method Mockito.mockConstruction(Function, MockedConstruction.MockInitializer, Object[]): MockedConstruction
  • added: static method Mockito.mockConstruction(Function, Object[]): MockedConstruction
  • added: static method Mockito.mockConstruction(MockSettings, MockedConstruction.MockInitializer, Object[]): MockedConstruction
  • added: static method Mockito.mockConstruction(MockSettings, Object[]): MockedConstruction
  • added: static method Mockito.mockConstruction(MockedConstruction.MockInitializer, Object[]): MockedConstruction
  • added: static method Mockito.mockConstruction(Object[]): MockedConstruction
  • added: static method Mockito.mockSingleton(Object): MockedSingleton
  • added: static method Mockito.mockSingleton(Object, MockSettings): MockedSingleton
  • added: static method Mockito.mockStatic(Answer, Object[]): MockedStatic
  • added: static method Mockito.mockStatic(MockSettings, Object[]): MockedStatic
  • added: static method Mockito.mockStatic(Object[]): MockedStatic
  • added: static method Mockito.mockStatic(String, Object[]): MockedStatic
  • added: static method Mockito.spyStatic(Class): MockedStatic
  • added: static method Mockito.spyStatic(Class, MockSettings): MockedStatic
  • added: static method Mockito.spyStatic(Class, String): MockedStatic
  • added: static method Mockito.spyStatic(MockSettings, Object[]): MockedStatic
  • added: static method Mockito.spyStatic(Object[]): MockedStatic
  • added: static method Mockito.spyStatic(String, Object[]): MockedStatic
  • removed: class InjectionBase
  • added: class DisabledMockException extends MockitoException
  • added: ctor DisabledMockException()
  • added: static method MockitoHamcrest.argThat(Matcher, Class): Object
  • removed: method MockedConstructionImpl.close(): void
  • removed: method MockedConstructionImpl.closeOnDemand(): void
  • removed: method MockedConstructionImpl.isClosed(): boolean
  • removed: method MockedStaticImpl.close(): void
  • removed: method MockedStaticImpl.closeOnDemand(): void
  • removed: method MockedStaticImpl.isClosed(): boolean
  • changed: final class MockedConstructionImpl implements MockedConstruction → final class MockedConstructionImpl extends ScopedMockImpl implements MockedConstruction
  • changed: final class MockedStaticImpl implements MockedStatic → final class MockedStaticImpl extends ScopedMockImpl implements MockedStatic
  • added: class PremainAttach
  • added: class PremainAttachAccess
  • added: class ScopedMockImpl implements ScopedMock
  • added: ctor MockedSingletonImpl(MockMaker.SingletonMockControl)
  • added: ctor PremainAttach()
  • added: ctor PremainAttachAccess()
  • added: ctor ScopedMockImpl(MockMaker.ScopedMockControl)
  • added: field ScopedMockImpl.control: MockMaker.ScopedMockControl
  • added: final class MockedSingletonImpl extends ScopedMockImpl implements MockedSingleton
  • added: method MockedSingletonImpl.getInstance(): Object
  • added: method MockedSingletonImpl.toString(): String
  • added: method MockitoCore.mockSingleton(Object, MockSettings): MockedSingleton
  • added: method ScopedMockImpl.assertNotClosed(): void
  • added: method ScopedMockImpl.close(): void
  • added: method ScopedMockImpl.closeOnDemand(): void
  • added: method ScopedMockImpl.isClosed(): boolean
  • added: static method PremainAttach.getInstrumentation(): Instrumentation
  • added: static method PremainAttach.premain(String, Instrumentation): void
  • added: static method PremainAttachAccess.getInstrumentation(): Instrumentation
  • added: final class SpyAnnotationUtil
  • added: static method CaptorAnnotationProcessor.process(Parameter): Object
  • added: static method SpyAnnotationUtil.resetOrCreateSpy(Field, Object, MemberAccessor, Object): void
  • changed: method MockCandidateFilter.filterCandidate(Collection, Field, List, Object): OngoingInjector → method MockCandidateFilter.filterCandidate(Collection, Field, List, Object, Field): OngoingInjector
  • changed: method NameBasedCandidateFilter.filterCandidate(Collection, Field, List, Object): OngoingInjector → method NameBasedCandidateFilter.filterCandidate(Collection, Field, List, Object, Field): OngoingInjector
  • changed: method TerminalMockCandidateFilter.filterCandidate(Collection, Field, List, Object): OngoingInjector → method TerminalMockCandidateFilter.filterCandidate(Collection, Field, List, Object, Field): OngoingInjector
  • changed: method TypeBasedCandidateFilter.filterCandidate(Collection, Field, List, Object): OngoingInjector → method TypeBasedCandidateFilter.filterCandidate(Collection, Field, List, Object, Field): OngoingInjector
  • added: method TypeBasedCandidateFilter.isCompatibleTypes(Type, Type, Field): boolean
  • changed: static method Plugins.getDoNotMockEnforcer(): DoNotMockEnforcer → static method Plugins.getDoNotMockEnforcer(): DoNotMockEnforcerWithType
  • added: method DefaultMockitoPlugins.getMockMaker(String): MockMaker
  • added: static field DefaultMockitoPlugins.MEMBER_ACCESSOR_ALIASES: Set
  • added: method MockSettingsImpl.genericTypeToMock(Type): MockSettings
  • removed: class MockMethodInterceptor implements Serializable
  • removed: ctor MockMethodInterceptor(MockHandler, MockCreationSettings)
  • removed: ctor MockMethodInterceptor.DispatcherDefaultingToRealMethod()
  • removed: ctor MockMethodInterceptor.ForEquals()
  • removed: interface MockAccess
  • removed: interface SubclassLoader
  • removed: method MockAccess.getMockitoInterceptor(): MockMethodInterceptor
  • removed: method MockAccess.setMockitoInterceptor(MockMethodInterceptor): void
  • removed: method MockMethodInterceptor.getMockHandler(): MockHandler
  • removed: method MockMethodInterceptor.getSerializationSupport(): ByteBuddyCrossClassLoaderSerializationSupport
  • removed: method SubclassLoader.isDisrespectingOpenness(): boolean
  • removed: method SubclassLoader.resolveStrategy(Class, ClassLoader, boolean): ClassLoadingStrategy
  • removed: static class MockMethodInterceptor.DispatcherDefaultingToRealMethod
  • removed: static class MockMethodInterceptor.ForEquals
  • removed: static final class MockMethodInterceptor.ForHashCode
  • removed: static final class MockMethodInterceptor.ForWriteReplace
  • removed: static method MockMethodInterceptor.DispatcherDefaultingToRealMethod.interceptAbstract(Object, MockMethodInterceptor, Object, Method, Object[]): Object
  • removed: static method MockMethodInterceptor.DispatcherDefaultingToRealMethod.interceptSuperCallable(Object, MockMethodInterceptor, Method, Object[], Callable): Object
  • removed: static method MockMethodInterceptor.ForEquals.doIdentityEquals(Object, Object): boolean
  • removed: static method MockMethodInterceptor.ForHashCode.doIdentityHashCode(Object): int
  • removed: static method MockMethodInterceptor.ForWriteReplace.doWriteReplace(MockAccess): Object
  • changed: ctor InlineBytecodeGenerator(Instrumentation, WeakConcurrentMap, DetachedThreadLocal, Predicate, ConstructionCallback) → ctor InlineBytecodeGenerator(Instrumentation, WeakConcurrentMap, DetachedThreadLocal, DetachedThreadLocal, Predicate, ConstructionCallback)
  • changed: ctor MockMethodAdvice(WeakConcurrentMap, DetachedThreadLocal, String, Predicate, ConstructionCallback) → ctor MockMethodAdvice(WeakConcurrentMap, DetachedThreadLocal, DetachedThreadLocal, String, Predicate, ConstructionCallback)
  • changed: ctor SubclassByteBuddyMockMaker(SubclassLoader) → ctor SubclassByteBuddyMockMaker(ModuleHandler)
  • added: abstract class ModuleHandler
  • added: class ByteBuddyCrossClassLoaderSerializationSupport implements Serializable
  • added: class ClinitSuppressionTransformer implements ClassFileTransformer
  • added: ctor ByteBuddyCrossClassLoaderSerializationSupport()
  • added: ctor ByteBuddyCrossClassLoaderSerializationSupport.CrossClassLoaderSerializationProxy(Object)
  • added: ctor ByteBuddyCrossClassLoaderSerializationSupport.MockitoMockObjectInputStream(InputStream, Class, Set)
  • added: ctor ClinitSuppressionTransformer(Predicate)
  • added: ctor ModuleHandler()
  • added: ctor ModuleHandler.NoModuleSystemFound()
  • added: interface ByteBuddyCrossClassLoaderSerializationSupport.CrossClassLoaderSerializableMock
  • added: method ByteBuddyCrossClassLoaderSerializationSupport.CrossClassLoaderSerializableMock.writeReplace(): Object
  • added: method ByteBuddyCrossClassLoaderSerializationSupport.MockitoMockObjectInputStream.resolveClass(ObjectStreamClass): Class
  • added: method ByteBuddyCrossClassLoaderSerializationSupport.writeReplace(Object): Object
  • added: method ClinitSuppressionTransformer.transform(ClassLoader, String, Class, ProtectionDomain, byte[]): byte[]
  • added: method InlineByteBuddyMockMaker.createSingletonMock(Object, MockCreationSettings, MockHandler): MockMaker.SingletonMockControl
  • added: method ModuleHandler.classLoadingStrategy(): ClassLoadingStrategy
  • added: static abstract class ModuleHandler.NoModuleSystemFound extends ModuleHandler
  • added: static class ByteBuddyCrossClassLoaderSerializationSupport.CrossClassLoaderSerializationProxy implements Serializable
  • added: static class ByteBuddyCrossClassLoaderSerializationSupport.MockitoMockObjectInputStream extends ObjectInputStream
  • added: class MockMethodInterceptor implements Serializable
  • added: ctor MockMethodInterceptor(MockHandler, MockCreationSettings)
  • added: ctor MockMethodInterceptor.DispatcherDefaultingToRealMethod()
  • added: ctor MockMethodInterceptor.ForEquals()
  • added: interface MockAccess
  • added: method MockAccess.getMockitoInterceptor(): MockMethodInterceptor
  • added: method MockAccess.setMockitoInterceptor(MockMethodInterceptor): void
  • added: method MockMethodInterceptor.doIntercept(Object, Method, Object[], RealMethod, Location): Object
  • added: method MockMethodInterceptor.getMockHandler(): MockHandler
  • added: method MockMethodInterceptor.getSerializationSupport(): ByteBuddyCrossClassLoaderSerializationSupport
  • added: static class MockMethodInterceptor.DispatcherDefaultingToRealMethod
  • added: static class MockMethodInterceptor.ForEquals
  • added: static final class MockMethodInterceptor.ForHashCode
  • added: static final class MockMethodInterceptor.ForWriteReplace
  • added: static method MockMethodInterceptor.DispatcherDefaultingToRealMethod.interceptAbstract(Object, MockMethodInterceptor, Object, Method, Object[]): Object
  • added: static method MockMethodInterceptor.DispatcherDefaultingToRealMethod.interceptSuperCallable(Object, MockMethodInterceptor, Method, Object[], Callable): Object
  • added: static method MockMethodInterceptor.ForEquals.doIdentityEquals(Object, Object): boolean
  • added: static method MockMethodInterceptor.ForHashCode.doIdentityHashCode(Object): int
  • added: static method MockMethodInterceptor.ForWriteReplace.doWriteReplace(MockAccess): Object
  • added: class InjectionBase
  • added: field CreationSettings.genericTypeToMock: Type
  • added: field CreationSettings.mockType: MockType
  • added: method CreationSettings.getGenericTypeToMock(): Type
  • added: method CreationSettings.getMockType(): MockType
  • added: method CreationSettings.setGenericTypeToMock(Type): CreationSettings
  • added: method CreationSettings.setMockType(MockType): void
  • changed: static method Reporter.argumentsAreDifferent(String, List, List): AssertionError → static method Reporter.argumentsAreDifferent(Invocation, MatchableInvocation, String, List, List): AssertionError
  • added: static method Reporter.moreThanOneMockCandidate(Field, Collection): MockitoException
  • added: class DisabledMockHandler implements MockHandler
  • added: method DisabledMockHandler.getInvocationContainer(): InvocationContainer
  • added: method DisabledMockHandler.getMockSettings(): MockCreationSettings
  • added: method DisabledMockHandler.handle(Invocation): Object
  • added: static field DisabledMockHandler.HANDLER: MockHandler
  • removed: method HamcrestArgumentMatcher.isVarargMatcher(): boolean
  • added: ctor HamcrestArgumentMatcher(Matcher, Class)
  • added: method HamcrestArgumentMatcher.type(): Class
  • removed: ctor InstanceOf.VarArgAware(Class)
  • removed: ctor InstanceOf.VarArgAware(Class, String)
  • removed: interface VarargMatcher extends Serializable
  • removed: method InstanceOf.VarArgAware.type(): Class
  • removed: static class InstanceOf.VarArgAware extends InstanceOf implements VarargMatcher
  • changed: class Any implements ArgumentMatcher, VarargMatcher, Serializable → class Any implements ArgumentMatcher, Serializable
  • changed: class CapturingMatcher implements ArgumentMatcher, CapturesArguments, VarargMatcher, Serializable → class CapturingMatcher implements ArgumentMatcher, CapturesArguments, Serializable
  • added: method MockingProgress.singletonMockingStarted(Object, MockCreationSettings): void
  • added: method MockingProgressImpl.singletonMockingStarted(Object, MockCreationSettings): void
  • removed: method InvocationContainerImpl.getStubbingsDescending(): List
  • removed: final class JavaEightUtil
  • removed: static method JavaEightUtil.emptyDoubleStream(): Object
  • removed: static method JavaEightUtil.emptyDuration(): Object
  • removed: static method JavaEightUtil.emptyIntStream(): Object
  • removed: static method JavaEightUtil.emptyLongStream(): Object
  • removed: static method JavaEightUtil.emptyOptional(): Object
  • removed: static method JavaEightUtil.emptyOptionalDouble(): Object
  • removed: static method JavaEightUtil.emptyOptionalInt(): Object
  • removed: static method JavaEightUtil.emptyOptionalLong(): Object
  • removed: static method JavaEightUtil.emptyPeriod(): Object
  • removed: static method JavaEightUtil.emptyStream(): Object
  • removed: static method Platform.isAndroidMockMakerRequired(): boolean
  • removed: static method Platform.isJava8BelowUpdate45(): boolean
  • changed: ctor MockNameImpl(String, Class, boolean) → ctor MockNameImpl(String, Class, MockType)
  • added: class AndroidPlatform
  • added: ctor AndroidPlatform()
  • added: method ConsoleMockitoLogger.warn(Object): void
  • added: static method AndroidPlatform.isStackWalkerUsable(): boolean
  • added: static method MockUtil.createSingletonMock(Object, MockCreationSettings): MockMaker.SingletonMockControl
  • added: static method MockUtil.getMockMaker(String): MockMaker
  • added: static method Primitives.getPrimitiveDescriptor(Class): char
  • added: class WeakIdentityMap extends AbstractMap
  • added: ctor WeakIdentityMap()
  • added: method WeakIdentityMap.containsKey(Object): boolean
  • added: method WeakIdentityMap.entrySet(): Set
  • added: method WeakIdentityMap.get(Object): Object
  • added: method WeakIdentityMap.put(Object, Object): Object
  • added: method WeakIdentityMap.remove(Object): Object
  • added: method WeakIdentityMap.size(): int
  • added: method GenericMaster.getGenericType(Parameter): Class
  • added: static method ArgumentMatchingTool.getNotMatchingArgsIndexes(List, Object[]): List
  • added: method MockCreationListener.onSingletonMockCreated(Object, MockCreationSettings): void
  • added: enum MockType
  • added: method MockCreationSettings.getGenericTypeToMock(): Type
  • added: method MockCreationSettings.getMockType(): MockType
  • added: static field MockType.INSTANCE: MockType
  • added: static field MockType.STATIC: MockType
  • added: static method MockType.valueOf(String): MockType
  • added: static method MockType.values(): MockType[]
  • removed: method MockMaker.ConstructionMockControl.disable(): void
  • removed: method MockMaker.ConstructionMockControl.enable(): void
  • removed: method MockMaker.StaticMockControl.disable(): void
  • removed: method MockMaker.StaticMockControl.enable(): void
  • changed: interface DoNotMockEnforcer → interface DoNotMockEnforcer extends DoNotMockEnforcerWithType
  • changed: interface MockMaker.ConstructionMockControl → interface MockMaker.ConstructionMockControl extends MockMaker.ScopedMockControl
  • changed: interface MockMaker.StaticMockControl → interface MockMaker.StaticMockControl extends MockMaker.ScopedMockControl
  • added: ctor DoNotMockEnforcer.Cache()
  • added: interface DoNotMockEnforcerWithType
  • added: interface MockMaker.ScopedMockControl
  • added: interface MockMaker.SingletonMockControl extends MockMaker.ScopedMockControl
  • added: method DoNotMockEnforcer.checkTypeForDoNotMockViolation(MockCreationSettings): String
  • added: method DoNotMockEnforcerWithType.checkTypeForDoNotMockViolation(MockCreationSettings): String
  • added: method MockMaker.ScopedMockControl.disable(): void
  • added: method MockMaker.ScopedMockControl.enable(): void
  • added: method MockMaker.SingletonMockControl.getInstance(): Object
  • added: method MockMaker.createSingletonMock(Object, MockCreationSettings, MockHandler): MockMaker.SingletonMockControl
  • added: method MockitoLogger.warn(Object): void
  • added: method MockitoPlugins.getMockMaker(String): MockMaker
  • added: static class DoNotMockEnforcer.Cache