从 JUnit 单元测试设置 android.location.Location 对象的参数

p37*_*td8 4 junit android unit-testing locationmanager android-location

我正在尝试对接收 android.location.Location 对象的函数进行单元测试。但是我阻止了,因为我无法为 Location 对象设置参数。

@Test
public void testLocation() {
    Location location = new Location("gps");
    location.setAccuracy(25F);
    location.setTime(5123L);
    System.out.println("Accuracy: " + location.getAccuracy());
    System.out.println("Time: " + location.getTime());
}
Run Code Online (Sandbox Code Playgroud)

输出:

Accuracy: 0.0
Time: 0

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

位置精度和时间为零,但值是在上面的代码中设置的。这不是 Intrumentation 测试,我在 jvm 下将它作为简单的单元测试运行(测试工件:单元测试)。

使用 JUnit 4.12

p37*_*td8 5

添加 @RunWith(RobolectricTestRunner.class) 后 - 它按预期工作。