יכולת פעולה הדדית

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

יכולת פעולה הדדית עם Espresso

באפליקציה היברידית, אפשר למצוא רכיבי Compose בתוך היררכיות תצוגה ותצוגות בתוך רכיבי Compose (באמצעות הרכיב AndroidView).

אין צורך לבצע שלבים מיוחדים כדי להתאים אף אחד מהסוגים. תוכלו להתאים בין תצוגות באמצעות onView של Espresso, וליצור רכיבים באמצעות ComposeTestRule.

@Test
fun androidViewInteropTest() {
    // Check the initial state of a TextView that depends on a Compose state.
    Espresso.onView(withText("Hello Views")).check(matches(isDisplayed()))
    // Click on the Compose button that changes the state.
    composeTestRule.onNodeWithText("Click here").performClick()
    // Check the new value.
    Espresso.onView(withText("Hello Compose")).check(matches(isDisplayed()))
}

יכולת פעולה הדדית עם UiAutomator

כברירת מחדל, אפשר לגשת לתכנים קומפוזביליים מ-UiAutomator רק באמצעות תיאורים נוחים (הטקסט המוצג, תיאור התוכן וכו'). אם רוצים כדי לגשת לכל תוכן קומפוזבילי שמשתמש ב-Modifier.testTag, צריך להפעיל את התכונה הסמנטית testTagsAsResourceId של התוכן הקומפוזבילי הספציפי עץ המשנה. הפעלת ההתנהגות הזו שימושית לתכנים קומפוזביליים שאין להם כינוי ייחודי אחר, כמו תכנים קומפוזביליים שניתן לגלול (לדוגמה, LazyColumn).

עליכם להפעיל את המאפיין הסמנטי רק פעם אחת גבוהה בהיררכיה של התכנים הקומפוזביליים כדי מוודאים שכל התכנים הקומפוזביליים שהוצבו בהיררכיה Modifier.testTag נגישים דרך UiAutomator.

Scaffold(
    // Enables for all composables in the hierarchy.
    modifier = Modifier.semantics {
        testTagsAsResourceId = true
    }
){
    // Modifier.testTag is accessible from UiAutomator for composables nested here.
    LazyColumn(
        modifier = Modifier.testTag("myLazyColumn")
    ){
        // Content
    }
}

אפשר לגשת לכל רכיב שאפשר ליצור באמצעות Modifier.testTag(tag) באמצעות By.res(resourceName), באמצעות אותו tag כמו ב-resourceName.

val device = UiDevice.getInstance(getInstrumentation())

val lazyColumn: UiObject2 = device.findObject(By.res("myLazyColumn"))
// Some interaction with the lazyColumn.

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

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