beforePowerMockTestMethod throws ExceptionInInitializerError when using Mockito with PowerMock

3,667 views
Skip to first unread message

asahoo

unread,
Jan 17, 2016, 12:41:23 AM1/17/16
to PowerMock
I am getting below error while executing testNg test cases with mockito+powermockito. Any help guidance would be greatly appreciated.

Mockito: 1.9.5
powermockito: 1.5.5
java : 8

beforePowerMockTestMethod(com.test.XXX)  Time elapsed: 0.721 sec  <<< FAILURE!
java.lang.ExceptionInInitializerError: null
    at org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.<init>(ConditionalStackTraceFilter.java:17)
    at org.mockito.exceptions.base.MockitoException.filterStackTrace(MockitoException.java:30)
    at org.mockito.exceptions.base.MockitoException.<init>(MockitoException.java:19)
    at org.mockito.exceptions.misusing.MockitoConfigurationException.<init>(MockitoConfigurationException.java:18)
    at org.mockito.internal.configuration.ClassPathLoader.loadImplementations(ClassPathLoader.java:145)
    at org.mockito.internal.configuration.ClassPathLoader.findPluginImplementation(ClassPathLoader.java:110)
    at org.mockito.internal.configuration.ClassPathLoader.findPlatformMockMaker(ClassPathLoader.java:106)
    at org.mockito.internal.configuration.ClassPathLoader.<clinit>(ClassPathLoader.java:59)
    at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:21)
    at org.mockito.internal.MockitoCore.<init>(MockitoCore.java:40)
    at org.mockito.internal.stubbing.defaultanswers.ReturnsMocks.<init>(ReturnsMocks.java:18)
    at org.mockito.Answers.<clinit>(Answers.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at java.lang.Class.getEnumConstantsShared(Class.java:3312)

Johan Haleby

unread,
Jan 17, 2016, 1:46:35 PM1/17/16
to powe...@googlegroups.com
You could try upgrading to a later version and see if that helps. And also try to extend from PowerMockTestCase.

--
You received this message because you are subscribed to the Google Groups "PowerMock" group.
To unsubscribe from this group and stop receiving emails from it, send an email to powermock+...@googlegroups.com.
To post to this group, send email to powe...@googlegroups.com.
Visit this group at https://groups.google.com/group/powermock.
For more options, visit https://groups.google.com/d/optout.

asahoo

unread,
Jan 18, 2016, 1:25:01 PM1/18/16
to PowerMock
Hello Johan,

Thanks for your reply.

I tried all different combination of versions of latest mockito and powermockito with no luck.  Can you please help me I would be really appreciate your suggestion. Thanks.

I am using:

TestNg: 6.8.13
Mockito: 1.9.5
powermockito: 1.5.5
java : 8


 @PowerMockIgnore({"javax.management.*""javax.xml.*""org.xml.sax.*""org.w3c.dom.*",  "org.springframework.context.*""org.apache.log4j.*","javax.persistence.*"})

@PrepareForTest({MockMe.class})
public class TestTest extends PowerMockTestCase {
@ObjectFactory public IObjectFactory getObjectFactory() { return new PowerMockObjectFactory(); } @Mock public MockMe mockMe; @BeforeTest public void init() { initMocks(this); mockStatic(MockMe.class); when(MockMe.getInstance()).thenReturn(mockMe); } @Test public void sampleTest() { MockMe mockMe1 = MockMe.getInstance(); assertEquals(mockMe1, mockMe); } } The test fails with the following stack trace: FAILED CONFIGURATION: @BeforeTest init java.lang.ExceptionInInitializerError at org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.<init>(ConditionalStackTraceFilter.java:17) at org.mockito.exceptions.base.MockitoException.filterStackTrace(MockitoException.java:30) at org.mockito.exceptions.base.MockitoException.<init>(MockitoException.java:19) at org.mockito.exceptions.misusing.MockitoConfigurationException.<init>(MockitoConfigurationException.java:18) at org.mockito.internal.configuration.ClassPathLoader.loadImplementations(ClassPathLoader.java:145) at org.mockito.internal.configuration.ClassPathLoader.findPluginImplementation(ClassPathLoader.java:110) at org.mockito.internal.configuration.ClassPathLoader.findPlatformMockMaker(ClassPathLoader.java:106) at org.mockito.internal.configuration.ClassPathLoader.<clinit>(ClassPathLoader.java:59) at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:21) at org.mockito.internal.MockitoCore.<init>(MockitoCore.java:40) at org.mockito.internal.stubbing.defaultanswers.ReturnsMocks.<init>(ReturnsMocks.java:18) at org.mockito.Answers.<clinit>(Answers.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.lang.Class.getEnumConstantsShared(Class.java:2942) at java.lang.Class.enumConstantDirectory(Class.java:2963) at java.lang.Enum.valueOf(Enum.java:191) at sun.reflect.annotation.AnnotationParser.parseEnumValue(AnnotationParser.java:413) at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:278) at java.lang.reflect.Method.getDefaultValue(Method.java:720) at sun.reflect.annotation.AnnotationType.<init>(AnnotationType.java:99) at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:66) at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:202) at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) at java.lang.reflect.Field.declaredAnnotations(Field.java:1014) at java.lang.reflect.Field.getAnnotation(Field.java:1000) at java.lang.reflect.AccessibleObject.isAnnotationPresent(AccessibleObject.java:168) at org.powermock.reflect.internal.matcherstrategies.FieldAnnotationMatcherStrategy.matches(FieldAnnotationMatcherStrategy.java:37) at org.powermock.reflect.internal.WhiteboxImpl.findAllFieldsUsingStrategy(WhiteboxImpl.java:535) at org.powermock.reflect.internal.WhiteboxImpl.getFieldsAnnotatedWith(WhiteboxImpl.java:2343) at org.powermock.reflect.Whitebox.getFieldsAnnotatedWith(Whitebox.java:585) at org.powermock.api.extension.listener.AnnotationEnabler.standardInject(AnnotationEnabler.java:70) at org.powermock.api.extension.listener.AnnotationEnabler.beforeTestMethod(AnnotationEnabler.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.powermock.reflect.internal.WhiteboxImpl.performMethodInvocation(WhiteboxImpl.java:2014) at org.powermock.reflect.internal.WhiteboxImpl.invokeMethod(WhiteboxImpl.java:744) at org.powermock.reflect.Whitebox.invokeMethod(Whitebox.java:415) at org.powermock.modules.testng.internal.PowerMockTestNGMethodHandler.injectMocksUsingAnnotationEnabler(PowerMockTestNGMethodHandler.java:72) at org.powermock.modules.testng.internal.PowerMockTestNGMethodHandler.invoke(PowerMockTestNGMethodHandler.java:47) at com.actifio.psrv.util.analysis.TestTest_$$_javassist_0.init(TestTest_$$_javassist_0.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) at org.testng.TestRunner.beforeRun(TestRunner.java:641) at org.testng.TestRunner.run(TestRunner.java:609) at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) at org.testng.SuiteRunner.run(SuiteRunner.java:240) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) at org.testng.TestNG.run(TestNG.java:1031) at org.testng.TestNG.privateMain(TestNG.java:1338) at org.testng.TestNG.main(TestNG.java:1307) Caused by: java.lang.NullPointerException at org.mockito.internal.exceptions.stacktrace.StackTraceFilter.<clinit>(StackTraceFilter.java:21) ... 67 more

Johan Haleby

unread,
Jan 19, 2016, 10:43:12 AM1/19/16
to powe...@googlegroups.com
Try moving 

mockStatic(MockMe.class);
when(MockMe.getInstance()).thenReturn(mockMe);

into the sampleTest method instead. It's (unfortunately) a known issue that mocking sometimes fail in TestNG in a @Before method. 

/Johan

asahoo

unread,
Jan 19, 2016, 4:50:05 PM1/19/16
to PowerMock
Thanks for your suggestion, I implemented per below but no luck :(

Does powermock has a fix of the know issue with TestNg @Before method ?

Johan Haleby

unread,
Jan 21, 2016, 7:07:08 AM1/21/16
to powe...@googlegroups.com
Unfortunately not. If you want to try and help out solving it it would be very much appreciated. 
Reply all
Reply to author
Forward
0 new messages