בדיקת הפריסה של הכתיבה

כדאי לבדוק את ממשק המשתמש של האפליקציה כדי לוודא שההתנהגות של קוד ה-Compose תקינה. כך תוכלו לזהות שגיאות בשלב מוקדם ולשפר את איכות האפליקציה.

‫Compose מספקת קבוצה של ממשקי API לבדיקה כדי למצוא רכיבים, לאמת את המאפיינים שלהם ולבצע פעולות משתמש. ממשקי ה-API כוללים גם תכונות מתקדמות כמו שינוי של השעה. אפשר להשתמש בממשקי ה-API האלה כדי ליצור בדיקות חזקות שמאמתות את ההתנהגות של האפליקציה.

צפיות

אם אתם עובדים עם תצוגות במקום עם Compose, כדאי לעיין בקטע הכללי בנושא בדיקת אפליקציות ב-Android.

בפרט, כדאי להתחיל עם המדריך אוטומציה של בדיקות ממשק משתמש. המאמר מסביר איך אפשר להפוך לבדיקות אוטומטיות בדיקות שמופעלות במכשיר, כולל כשמשתמשים בתצוגות.

מושגים מרכזיים

ריכזנו כאן כמה מושגים חשובים לבדיקת קוד Compose:

  • סמנטיקה: סמנטיקה נותנת משמעות לממשק המשתמש, ומאפשרת לבדיקות ליצור אינטראקציה עם רכיבים ספציפיים.
  • בדיקת ממשקי API: ממשקי API לבדיקה מאפשרים לכם למצוא רכיבים, לאמת את המאפיינים שלהם ולבצע פעולות משתמש.
  • סנכרון: הסנכרון מוודא שהבדיקות ימתינו עד שממשק המשתמש יהיה במצב לא פעיל לפני ביצוע פעולות או הצהרות.
  • יכולת פעולה הדדית: יכולת הפעולה ההדדית מאפשרת לבדיקות לפעול עם רכיבים מבוססי Compose וגם עם רכיבים מבוססי View באותה אפליקציה.

דף מידע על בדיקות

בדף העזר בנושא בדיקות מופיע סקירה כללית של כל הנושאים העיקריים שצריך ללמוד על בדיקות ב-Compose.

הגדרה

מגדירים את האפליקציה כדי לבדוק את קוד ה-Compose.

קודם מוסיפים את יחסי התלות הבאים לקובץ build.gradle של המודול שמכיל את בדיקות ממשק המשתמש:

// 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")

המודול הזה כולל ComposeTestRule ויישום ל-Android שנקרא AndroidComposeTestRule. באמצעות הכלל הזה אפשר להגדיר יצירת תוכן או גישה לפעילות. יוצרים את הכללים באמצעות פונקציות factory,‏ createComposeRule או, אם צריך גישה לפעילות, createAndroidComposeRule. בדיקת ממשק משתמש אופיינית ל-Compose נראית כך:

// 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()
    }
}

מקורות מידע נוספים

  • בדיקת אפליקציות ב-Android: דף הנחיתה הראשי בנושא בדיקות ב-Android מספק סקירה רחבה יותר של עקרונות וטכניקות בדיקה.
  • יסודות הבדיקה: מידע נוסף על המושגים הבסיסיים שמאחורי בדיקת אפליקציית Android.
  • בדיקות מקומיות: אתם יכולים להריץ בדיקות מסוימות באופן מקומי, בתחנת העבודה שלכם.
  • בדיקות עם מכשור: מומלץ להריץ גם בדיקות עם מכשור. כלומר, בדיקות שמופעלות ישירות במכשיר.
  • אינטגרציה רציפה (CI): אינטגרציה רציפה מאפשרת לכם לשלב את הבדיקות בצינור הפריסה.
  • בדיקה בגדלים שונים של מסכים: יש למשתמשים הרבה מכשירים שונים, ולכן כדאי לבדוק את האתר בגדלים שונים של מסכים.
  • Espresso: למרות שהכלי מיועד לממשקי משתמש מבוססי-תצוגה, הידע ב-Espresso יכול לעזור בהיבטים מסוימים של בדיקות ב-Compose.

Codelab

כאן אפשר לנסות את ה-codelab של Jetpack Compose Testing.

טעימות