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

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

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

צפיות

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

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

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

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

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

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

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

הגדרה

מגדירים את האפליקציה כדי לבדוק את קוד ה-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: למרות שהכלי מיועד לממשקי משתמש מבוססי-View, הידע ב-Espresso יכול להיות שימושי גם לבדיקה של חלק מההיבטים ב-Compose.

Codelab

כדי לקבל מידע נוסף, אפשר לנסות את ה-Codelab בנושא בדיקות של Jetpack פיתוח נייטיב.

דוגמיות