@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());
}发布于 2018-10-25 01:24:48
不幸的是,这是一个JVM问题。(在1.43版本之前,JMockit使用了一种丑陋的黑客手段来避免失败。)
https://stackoverflow.com/questions/52943601
复制相似问题