Robolectric 3.2:System.currentTimeMillis()未截获

时间:2017-02-22 13:15:12

标签: android robolectric

我有一个最小的测试用例,它不像我期望的那样工作:

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()来电 - 是不是运行测试用例?

0 个答案:

没有答案