Layout von „Compose“ testen

Testen Sie die Benutzeroberfläche Ihrer App, um zu prüfen, ob der Compose-Code korrekt funktioniert. So kannst du Fehler frühzeitig erkennen und die Qualität deiner App verbessern.

Compose bietet eine Reihe von Test-APIs, mit denen Sie Elemente finden, ihre Attribute prüfen und Nutzeraktionen ausführen können. Die APIs bieten auch erweiterte Funktionen wie die Zeitmanipulation. Mit diesen APIs können Sie robuste Tests erstellen, mit denen das Verhalten Ihrer App überprüft wird.

Aufrufe

Wenn Sie anstelle von „Schreiben“ mit Ansichten arbeiten, lesen Sie den allgemeinen Abschnitt Apps unter Android testen.

Ein guter Ausgangspunkt ist der Leitfaden UI-Tests automatisieren. Darin wird beschrieben, wie Sie Tests automatisieren können, die auf dem Gerät ausgeführt werden, einschließlich der Verwendung von Ansichten.

Schlüsselkonzepte

Im Folgenden finden Sie einige Schlüsselkonzepte zum Testen des Compose-Codes.

  • Semantik: Zusammensetzungstests interagieren mit der UI über Semantik, die Teile der Benutzeroberfläche eine Bedeutung verleiht und zusammen mit der UI-Hierarchie generiert wird.
  • Test-APIs: Compose bietet Test-APIs, um Elemente zu finden, Assertions für ihren Status und ihre Attribute vorzunehmen und Aktionen zur Simulation von Nutzerinteraktionen durchzuführen.
  • Synchronisierung: Standardmäßig werden Compose-Tests automatisch mit der UI synchronisiert und warten, bis sie inaktiv ist, bevor Assertions erstellt oder Aktionen ausgeführt werden.
  • Interoperabilität: In hybriden Anwendungen können Tests nahtlos mit Compose- und View-basierten Elementen interagieren und in andere Test-Frameworks eingebunden werden.

Spickzettel für Tests

In der Kurzübersicht zu Tests finden Sie eine Übersicht über alle wichtigen Themen, die Sie über das Testen in Compose wissen sollten.

Einrichten

Richten Sie Ihre App so ein, dass Sie Code zum Schreiben testen können.

Fügen Sie zuerst der build.gradle-Datei des Moduls mit Ihren UI-Tests die folgenden Abhängigkeiten hinzu:

// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")

Dieses Modul enthält einen ComposeTestRule und eine Implementierung für Android namens AndroidComposeTestRule. Mit dieser Regel können Sie „Inhalte verfassen“ festlegen oder auf die Aktivität zugreifen. Sie erstellen die Regeln mithilfe von Fabrikfunktionen, entweder createComposeRule oder, wenn Sie Zugriff auf eine Aktivität benötigen, createAndroidComposeRule. Ein typischer UI-Test für Compose sieht so aus:

// file: app/src/androidTest/java/com/package/MyComposeTest.kt

class MyComposeTest {

    @get:Rule val composeTestRule = createComposeRule()
    // use createAndroidComposeRule<YourActivity>() if you need access to
    // an activity

    @Test
    fun myTest() {
        // Start the app
        composeTestRule.setContent {
            MyAppTheme {
                MainScreen(uiState = fakeUiState, /*...*/)
            }
        }

        composeTestRule.onNodeWithText("Continue").performClick()

        composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
    }
}

Zusätzliche Ressourcen

  • Apps unter Android testen: Die Haupt-Landingpage für Android-Tests bietet einen umfassenderen Überblick über die Grundlagen und Testverfahren.
  • Grundlagen des Testens: Hier erfahren Sie mehr über die grundlegenden Konzepte beim Testen einer Android-App.
  • Lokale Tests: Einige Tests können Sie lokal auf Ihrer eigenen Workstation ausführen.
  • Instrumentierte Tests:Es empfiehlt sich, auch instrumentierte Tests auszuführen. Das sind Tests, die direkt auf dem Gerät ausgeführt werden.
  • Kontinuierliche Integration: Mit der kontinuierlichen Integration können Sie Ihre Tests in Ihre Bereitstellungspipeline einbinden.
  • Unterschiedliche Bildschirmgrößen testen: Da Nutzern eine Vielzahl von Geräten zur Verfügung steht, sollten Sie verschiedene Bildschirmgrößen testen.
  • Espresso: Obwohl Espresso für viewbasierte UIs gedacht ist, können Kenntnisse zu Espresso auch für einige Aspekte von Compose-Tests hilfreich sein.

Codelab

Weitere Informationen finden Sie im Codelab zum Testen von Jetpack Compose-Tests.

Produktproben

Keine Ergebnisse gefunden.

Derzeit liegen keine Empfehlungen vor.

Versuchen Sie, sich bei Ihrem Google-Konto .