2016-04-25 158 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

回答