Frage

Ich bin neu in Android und ich habe Beispiel-Code mit diesen Anmerkungen zu sehen. Zum Beispiel:

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

Was bedeutet, dass die Annotation erreichen?

War es hilfreich?

Lösung

Dieser Blog-Eintrag es am besten erklärt. Grundsätzlich ist es folgendes:

 testen Diagramm

  1. Kleinformat:. Dieser Test nicht interact mit jedem Dateisystem oder Netzwerk
  2. Medium:. Greift Dateisysteme auf Box, die Tests ausgeführt
  3. Groß:. Greift externe Dateisysteme, Netzwerke, usw.

Per Android Developers Blog , ein kleiner Test nehmen <100ms sollte ein Medium Test <2s, und ein großer Test <120s.

Siehe Seite (Suche nach "@SmallTest") auf wie Sie angeben, welche Tests durchführen lassen.

Andere Tipps

Als Ergänzung zu Davidann Antwort und vor allem Frage der OP im Kommentar:

Im Zusammenhang mit dem obigen Code, sieht es eigentlich DO nichts außer eine Nachricht hinterlassen für andere Entwickler? Hat es etwas erzwingen? Gibt es irgendwelche Tools, die diese Anmerkung nutzt? Was ist es der Zweck in Android Entwicklung?

Sie können eine Gruppe von Tests mit bestimmten Anmerkung kommentierten auszuführen.

AndroidJUnitRunner Dokumentation :

Ausführen eine spezifische Testgröße d kommentiert mit SmallTest oder MediumTest oder LargeTest :

adb shell am Instrument -w -e Größe [small | medium | large] com.android.foo/android.support.test.runner.AndroidJUnitRunner

Sie können auch Setup diese params durch gradle:


    android {
        ...
        defaultConfig {
            ...
            testInstrumentationRunnerArgument 'size', 'Large'
        }
    }

Siehe diese Blog-Post für weitere Details.

Sie kann auch mit Anmerkungen versehen POJO Unit-Tests mit @Category(MediumTest.class) oder @Category(LargeTest.class) usw. durch die Definition eines eigenen Kategorien - siehe Test-Kategorien Repo für ein Beispiel

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top