Ошибка Java.lang.UnsatisfiedLinkError при создании макета Jmockit System.currentTimeMillis - PullRequest
0 голосов
/ 23 октября 2018
@Test
public void mockNativeMethod() {
    new MockUp<Runtime>() {
        @Mock
        @SuppressWarnings("unused")
        int availableProcessors() {
            return 999;
        }
    };
    assertEquals(999, Runtime.getRuntime().availableProcessors());
}

MockUp Runtime.availableProcessors - это нормально, но когда в MockUp System.currentTimeMillis что-то идет не так, возникает ошибка «java.lang.UnsatisfiedLinkError».

@Test
public void testSystemNative() {
    new MockUp<System>(System.class) {
        @Mock
        @SuppressWarnings("unused")
        long currentTimeMillis() {
            return 0L;
        }

    };
    Assert.assertEquals( 0L,System.currentTimeMillis());

}

1 Ответ

0 голосов
/ 24 октября 2018

Это проблема JVM, к сожалению.(До версии 1.43 JMockit использовал некрасивый хак, чтобы избежать сбоя.)

...