Under normal circumstances, using JMockit only requires that the JMockit JARs be declared before the JUnit JAR when running unit tests.
I am encountering the following StackOverflowError when using JMockit mocks in tests run with the RobolecticTestRunner.
java.lang.StackOverflowError: null
at java.lang.ThreadLocal.getMap(ThreadLocal.java:213)
at java.lang.ThreadLocal.get(ThreadLocal.java:144)
at mockit.internal.mockups.MockState.update(MockState.java:54)
at mockit.internal.mockups.MockStates.updateMockState(MockStates.java:93)
at mockit.internal.state.TestRun.updateMockState(TestRun.java:160)
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java)
at mockit.integration.junit4.internal.MockFrameworkMethod.validatePublicVoidNoArg(MockFrameworkMethod.java:46)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at mockit.internal.util.MethodReflection.invokeWithCheckedThrows(MethodReflection.java:106)
at mockit.internal.mockups.MockMethodBridge.callMock(MockMethodBridge.java:85)
at mockit.internal.mockups.MockMethodBridge.invoke(MockMethodBridge.java:44)
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java)
at mockit.integration.junit4.internal.MockFrameworkMethod.validatePublicVoidNoArg(MockFrameworkMethod.java:46)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at mockit.internal.util.MethodReflection.invokeWithCheckedThrows(MethodReflection.java:106)
at mockit.internal.mockups.MockMethodBridge.callMock(MockMethodBridge.java:85)
at mockit.internal.mockups.MockMethodBridge.invoke(MockMethodBridge.java:44)
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java)
Is there any special configuration that would allow for JMockit to function correctly when running unit tests with RobolectricTestRunner? The following discussion makes it look like JMockit with 1.5 release
RobolectricTestRunner's HelperTestRunner having trouble invoking Jmockit?
and this posting provided a suggestion for creating a custom RobolectricTestRunner that invokes Startup. initializeIfNeeded()
can jmockit and robolectric coexist?
However, neither discussion has helped me identify a solution. Any suggestions will be appreciated. Thank you.