בודקים את ממשק המשתמש של האפליקציה כדי לוודא שההתנהגות של קוד Compose תקינה. כך תוכלו לזהות שגיאות בשלב מוקדם ולשפר את איכות האפליקציה.
Compose מספק קבוצה של ממשקי API לבדיקה כדי למצוא רכיבים, לאמת את המאפיינים שלהם ולבצע פעולות של משתמשים. ממשקי ה-API כוללים גם תכונות מתקדמות כמו מניפולציה של זמן. אפשר להשתמש בממשקי ה-API האלה כדי ליצור בדיקות חזקות לאימות ההתנהגות של האפליקציה.
צפיות
אם אתם עובדים עם תצוגות מפורטות במקום עם Compose, תוכלו לעיין בקטע הכללי בדיקת אפליקציות ב-Android.
מקום טוב להתחיל בו הוא המדריך בנושא בדיקות אוטומטיות של ממשק המשתמש. במאמר הזה מוסבר איך לבצע אוטומציה של בדיקות שפועלות במכשיר, כולל כשמשתמשים בתצוגות.
מושגים מרכזיים
ריכזנו כאן כמה מושגים מרכזיים לבדיקה של קוד Compose:
- סמנטיקה: הסמנטיקה מעניקה משמעות לממשק המשתמש ומאפשרת לבדיקות לבצע אינטראקציה עם רכיבים ספציפיים.
- בדיקת ממשקי API: בדיקת ממשקי API מאפשרת לכם למצוא רכיבים, לאמת את המאפיינים שלהם ולבצע פעולות של משתמשים.
- סנכרון: הסנכרון מוודא שהבדיקות ממתינות עד שממשק המשתמש יהיה במצב חוסר פעילות לפני ביצוע פעולות או הצהרות נכוֹנוּת (assertions).
- יכולת פעולה הדדית: יכולת הפעולה ההדדית מאפשרת לבצע בדיקות גם עם רכיבים מבוססי-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
. בעזרת הכלל הזה תוכלו להגדיר תוכן של Compose או לגשת לפעילות. אפשר ליצור את הכללים באמצעות פונקציות של מפעל, 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.
טעימות
מומלץ עבורך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- סמנטיקה ב-Compose
- הוספת חלונות משנה ב-Compose
- שיקולים נוספים