2016-04-25 9 views
1

Ich versuche grundlegende JUnit und Mockito Tests auf Android zu lernen. Ich versuche Einheitentests für eine einfache Klasse zu schreiben, die den Standort des Benutzers von den Standortdiensten im Namen von Aktivitäten ermittelt, die Standortinformationen benötigen.Android Unit Tests/Mockito: android.location.Location nicht verspottet

I "gefälscht Lage" zu testen, mit zu erstellen versucht haben:

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

Aber ich bekomme die Fehlermeldung:

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

ich auf der JVM, dass Unit-Tests auf Android laufen zu verstehen, Sie haben also keinen Zugriff auf alles, was das Betriebssystem/Framework erfordert, aber ist dies auch einer dieser Fälle?

  • Wenn ja, wie sagen Sie, welche Klassen können/können nicht auf der JVM verwendet werden?
  • Benötige ich jetzt zusätzlich zu JVM-basierten Komponententests auch Geräte-/Gerätetests, um diese eine Klasse zu testen?
+0

Sie können auch Roboelectric verwenden: http://stackoverflow.com/q/35987519/565433 – CaptainNemo

Antwort

Verwandte Themen