Android
Robolectric
Suche…
Einführung
Bei Unit-Tests wird ein Code entnommen und unabhängig getestet, ohne dass andere Abhängigkeiten oder Teile des Systems (z. B. die Datenbank) ausgeführt werden.
Robolectric ist ein Unit-Test-Framework, das das Android-SDK-Gefäß deaktiviert, sodass Sie die Entwicklung Ihrer Android-App testen können. Die Tests werden innerhalb von Sekunden in der JVM auf Ihrer Workstation ausgeführt.
Wenn Sie beide kombinieren, können Sie schnelle Tests mit dem JVN ausführen, wobei die Android-APIs verwendet werden.
Robolectric Test
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {
@Test
public void clickingButton_shouldChangeResultsViewText() throws Exception {
MyActivity activity = Robolectric.setupActivity(MyActivity.class);
Button button = (Button) activity.findViewById(R.id.button);
TextView results = (TextView) activity.findViewById(R.id.results);
button.performClick();
assertThat(results.getText().toString()).isEqualTo("Robolectric Rocks!");
}
}
Aufbau
Um robolectric zu konfigurieren, fügen Sie der @Config
oder -methode die @ @Config
Anmerkung hinzu.
Mit benutzerdefinierter Anwendungsklasse ausführen
@RunWith(RobolectricTestRunner.class)
@Config(application = MyApplication.class)
public final class MyTest {
}
Legen Sie das Ziel-SDK fest
@RunWith(RobolectricTestRunner.class)
@Config(sdk = Build.VERSION_CODES.LOLLIPOP)
public final class MyTest {
}
Mit benutzerdefiniertem Manifest ausführen
Wenn angegeben, sieht robolectric relativ zum aktuellen Verzeichnis. Der Standardwert istAndroidManifest.xml
Ressourcen und Assets werden relativ zum Manifest geladen.
@RunWith(RobolectricTestRunner.class)
@Config(manifest = "path/AndroidManifest.xml")
public final class MyTest {
}
Verwenden Sie Qualifikatoren
Mögliche Qualifikationsmerkmale finden Sie in Android-Dokumenten .@RunWith(RobolectricTestRunner.class)
public final class MyTest {
@Config(qualifiers = "sw600dp")
public void testForTablet() {
}
}
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow