package org.mockitousage.plugins.switcher; import org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker; import org.mockito.invocation.MockHandler; import org.mockito.mock.MockCreationSettings; public class MyMockMaker extends SubclassByteBuddyMockMaker { static ThreadLocal<Object> explosive = new ThreadLocal<Object>(); public <T> T createMock(MockCreationSettings<T> settings, MockHandler handler) { if (explosive.get() != null) { throw new RuntimeException("Ka-boom!"); } return super.createMock(settings, handler); } public MockHandler getHandler(Object mock) { return super.getHandler(mock); } public void resetMock(Object mock, MockHandler newHandler, MockCreationSettings settings) { super.resetMock(mock, newHandler, settings); } @Override public TypeMockability isTypeMockable(Class<?> type) { return super.isTypeMockable(type); } }