מיומנויות ב-Android
הצגת הקוד ב-GitHubהגדרת בדיקות ב-Android
android skills add testing-setupכדי לוודא שההתנהגות של הקוד ב"פיתוח נייטיב" נכונה, צריך לבדוק את ממשק המשתמש של האפליקציה. כך תוכלו לזהות שגיאות בשלב מוקדם ולשפר את איכות האפליקציה.
ב-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
- עוד דברים שכדאי לבדוק