1

Here are the dependencies in pom.xml :

        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.24.0-GA</version>
        </dependency>

        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>2.0.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <version>2.0.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.10.19</version>
            <scope>test</scope>
        </dependency>

When i include @PrepareForTest in my tests, i get this error :

[ERROR] java.lang.StackOverflowError
[ERROR] at   javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:927)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.doInvokeMethod(Tracer.java:798)
[ERROR] at javassist.bytecode.stackmap.Tracer.doOpcode148_201(Tracer.java:594)
[ERROR] at javassist.bytecode.stackmap.Tracer.doOpcode(Tracer.java:78)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:195)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)

I tried to change the javassist version but it did not help.

Edit: Adding code that gives above error.

@RunWith(PowerMockRunner.class)
@PrepareForTest(A.class)
public class ServiceTest
{
@Test
public void test1() {
PowerMockito.mockStatic(A.class);
Mockito.when(A.findNumber()).thenReturn(13);
System.out.println(A.findNumber());
}

@Test
public void test2() {
    PowerMockito.mockStatic(A.class);
    Mockito.when(A.getNumber(25)).thenReturn(50);
    System.out.println(A.getNumber(25));
}
}

Has anyone seen this issue before?

robocon
  • 11
  • 2
  • Check this [`answer`](https://stackoverflow.com/questions/57542232/java-lang-nosuchmethoderror-org-mockito-mockito-frameworklorg-mockito-mockito). As he says `PowerMockito 2.x` requires a `Mockito` version of at least `2.8.9`. – second Aug 20 '19 at 09:40
  • thanks, the same error exists even after changing the Mockito dependency to 3.0.0 – robocon Aug 20 '19 at 17:39
  • In that case you have to provide some more information. Add your UnitTest (or whatever produces that exception) and the required code under test (if the error does not already appear on empty unit tests). – second Aug 20 '19 at 17:57
  • I am unable to reproduce the error. Having `Powermockito 2.0.2` in the pom, attracts automatically `javaassist 3.24.0-GA` and `mockito-core 2.23.0`, so you do not have to define them explicitly if you don't want to use a newer version. There must be something else in your pom/project/environment that is causing this. – second Aug 21 '19 at 07:40

0 Answers0