Mockito not working with Fiber while running junit tests

43 views
Skip to first unread message

Neeraj Chauhan

unread,
Mar 12, 2018, 11:12:00 AM3/12/18
to quasar-pulsar-user
what configuration required to let your unit tests which are using mockito to mock classes working...When I run my unit tests I get below error as unable to instrument mockito enhanced classes:

 com/corporate/property/props/SoaProps$$EnhancerByMockitoWithCGLIB$$82eb213#removeReloadListener)
[quasar] ERROR: Unable to instrument class com/corporate/property/props/SoaProps$$EnhancerByMockitoWithCGLIB$$82eb213
co.paralleluniverse.fibers.instrument.UnableToInstrumentException: Unable to instrument com/corporate/property/props/SoaProps$$EnhancerByMockitoWithC
GLIB$$82eb213#<init>()V because of special method
        at co.paralleluniverse.fibers.instrument.InstrumentClass.visitEnd(InstrumentClass.java:263)
        at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
        at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:118)
        at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:85)
        at co.paralleluniverse.fibers.instrument.JavaAgent$Transformer.transform(JavaAgent.java:190)
        at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
        at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
        at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.mockito.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:385)
        at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:220)
        at org.mockito.cglib.proxy.Enhancer.createHelper(Enhancer.java:378)
        at org.mockito.cglib.proxy.Enhancer.createClass(Enhancer.java:318)
        at org.mockito.internal.creation.cglib.ClassImposterizer.createProxyClass(ClassImposterizer.java:123)
        at org.mockito.internal.creation.cglib.ClassImposterizer.imposterise(ClassImposterizer.java:57)
        at org.mockito.internal.creation.cglib.ClassImposterizer.imposterise(ClassImposterizer.java:49)
        at org.mockito.internal.creation.cglib.CglibMockMaker.createMock(CglibMockMaker.java:24)
        at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:33)
        at org.mockito.internal.MockitoCore.mock(MockitoCore.java:59)
        at org.mockito.Mockito.mock(Mockito.java:1285)
        at org.mockito.internal.configuration.MockAnnotationProcessor.process(MockAnnotationProcessor.java:33)
        at org.mockito.internal.configuration.MockAnnotationProcessor.process(MockAnnotationProcessor.java:16)
        at org.mockito.internal.configuration.DefaultAnnotationEngine.createMockFor(DefaultAnnotationEngine.java:43)
        at org.mockito.internal.configuration.DefaultAnnotationEngine.process(DefaultAnnotationEngine.java:66)
        at org.mockito.internal.configuration.InjectingAnnotationEngine.processIndependentAnnotations(InjectingAnnotationEngine.java:71)
        at org.mockito.internal.configuration.InjectingAnnotationEngine.process(InjectingAnnotationEngine.java:55)
        at org.mockito.MockitoAnnotations.initMocks(MockitoAnnotations.java:108)
        at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl$1.withBefores(JUnit45AndHigherRunnerImpl.java:27)
        at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:276)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37)
        at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)
        at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

Neeraj Chauhan

unread,
Mar 12, 2018, 11:17:51 AM3/12/18
to quasar-pulsar-user
Also just to mention, I have defined SoaProps as a reloadbale class:

public interface SoaProps extends Reloadable

and this is getting mocked in test class as 
@Mock
private SoaProps soaProps;
Reply all
Reply to author
Forward
0 new messages