VerifyStatic для класса System не работает с PowerMock 2.0.2 - PullRequest
0 голосов
/ 26 мая 2019

Сбой ссылки на verifystatic в классе System после обновления версии Powermock до 2X с 1X

Ниже приведены мои текущие настройки ядро mockito - 2.27.0 powermock-api-mockito2 - 2.0.2 powermock-api-support - 2.0.2 powermock-module-junit4 - 2.0.2

Ниже код работает нормально с 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();
  }
}

Я внес следующие изменения, чтобы он работал с powermock2.0.2

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

При запуске теста получается исключение.

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)

Пожалуйста, помогите найти исправление для этого исключения.

...