private void handleMockList() { for (Class<? extends EvoSuiteMock> mock : MockList.getList()) { if (OverrideMock.class.isAssignableFrom(mock)) { replaceAllConstructors(mock, mock.getSuperclass()); replaceAllStaticMethods(mock, mock.getSuperclass()); replaceAllInvokeSpecial(mock, mock.getSuperclass()); handleStaticReplacementMethods(mock); } else if (StaticReplacementMock.class.isAssignableFrom(mock)) { String mockedName; try { mockedName = ((StaticReplacementMock) mock.newInstance()).getMockedClassName(); } catch (InstantiationException | IllegalAccessException e1) { logger.error("Cannot instantiate mock " + mock.getCanonicalName()); continue; } Class<?> mocked; try { mocked = StaticReplacementMock.class.getClassLoader().loadClass(mockedName); } catch (ClassNotFoundException e) { // should never happen logger.error( "Mock class " + mock.getCanonicalName() + " has non-existent mocked target " + mockedName); continue; } replaceAllStaticMethods(mock, mocked); replaceAllInstanceMethodsWithStatic(mock, mocked); replaceAllConstructorsWithStaticCalls(mock, mocked); } } }