2016-04-25 106 views
1

我想学习Android上的基本JUnit和Mockito测试。我正在尝试为一个简单的类编写单元测试,该类可以代表需要位置信息的活动处理从定位服务中查找用户的位置。Android单元测试/ Mockito:android.location.Location没有嘲讽

我一直在努力打造“伪造位置”来进行测试:

@Test 
public void testLocationReceived() throws Exception { 
    Location fakeLocation = new Location(LocationManager.NETWORK_PROVIDER); 
    fakeLocation.setLongitude(100); 
    fakeLocation.setLatitude(-80); 
    ... 
} 

但我得到的错误:

java.lang.RuntimeException: Method setLongitude in android.location.Location not mocked. 

我了解在Android上运行单元测试在JVM上,所以你无法访问任何需要操作系统/框架的东西,但这也是这种情况之一吗?

  • 如果是这样,你如何判断哪些类可以/不能在JVM上使用?
  • 除了 基于JVM的单元测试,我现在还需要仪器/设备测试来测试这一个类吗?
+0

您还可以使用Roboelectric:http://stackoverflow.com/q/35987519/565433 – CaptainNemo

回答