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 ist AndroidManifest.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