VerifyStatic on System class is failing with PowerMock 2.0.2

391 views Asked by At

Reference to verifystatic on System class is failing after upgrading powermock version to 2X from 1X

Below are my current configurations mockito-core - 2.27.0 powermock-api-mockito2 - 2.0.2 powermock-api-support - 2.0.2 powermock-module-junit4 - 2.0.2

Below code is working fine with powermock 1X

@RunWith(PowerMockRunner.class)
@PrepareForTest({ System.class })
public class SystemMockStaticTest {
  @Test
  public void testSystem() {
    PowerMockito.mockStatic(System.class);
    Properties properties = System.getProperties();
    PowerMockito.verifyStatic();
    System.getProperties();
  }
}

I have made below changes to make it work with powermock2.0.2

    PowerMockito.mockStatic(System.class);
    Properties properties = System.getProperties();
    PowerMockito.verifyStatic(System.class);
    System.getProperties();

On running the test getting below exception.

org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class java.lang.System
Mockito cannot mock/spy because :
 - final class
    at SystemMockStaticTest.testSystem(SystemMockStaticTest.java:19)
    at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66)
    at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:86)
    at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:94)
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)

Please help on finding a fix for this exception.

0

There are 0 answers