我有一个最小的测试用例,它不像我期望的那样工作:
public class TestClass {
@Test
public void testTime() {
long start = System.currentTimeMillis();
long start2 = SystemClock.elapsedRealtime();
long jump = 100000;
ShadowSystemClock.setCurrentTimeMillis(ShadowSystemClock.currentTimeMillis() + jump);
System.err.println("current: " + (System.currentTimeMillis() - start));
System.err.println("elapsed: " + (SystemClock.elapsedRealtime() - start2));
}
}
我希望当前和已过去的输出相同,但实际输出是:
current: 2
elapsed: 99900
我无法让System.currentTimeMillis()
更改,我的理解是在Robolectrict 3.2.2 InstrumentingClassLoader
应该用System.currentTimeMillis()
取代ShadowSystemClock.currentTimeMillis()
来电 - 是不是运行测试用例?