编写使用android.os.Build中某些字段的Android应用程序的测试

时间:2016-09-21 15:00:39

标签: java android api junit

我目前正在尝试为没有UI的Android应用程序编写一些测试(简单的后台服务)。我的Android服务基本上调用另一个负责大部分工作的类。我想测试这个类,但在其中我使用的东西是:

  • Build.SERIAL
  • Build.VERSION.RELEASE
  • BatteryManager.BATTERY_HEALTH_COLD

创建一个JSON对象。

这些值在我的测试中为空,因为我试图在不依赖Android设备的情况下进行测试。有没有办法在测试期间模拟这些值或更改其默认值?我的测试真正要验证的是我使用这些值构建的JSON对象是否正确构建。

1 个答案:

答案 0 :(得分:1)

  

有没有办法在测试期间模拟这些值或更改其默认值?

对于Android,我们使用名为Mockito

的库

做一个你想做的事的简单方法是:

    //  create mock
    YourBackgroundService test = Mockito.mock(YourBackgroundService.class);

    // define return value for method getSerial()
    when(test.getSerial()).thenReturn("42UNIV");

    // use mock in test....
    assertEquals(test.getSerial(), "42UNIV");