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.