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

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

יכולת פעולה הדדית עם 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 לעץ המשנה של התוכן הקומפוזבילי הספציפי. כדאי להפעיל את ההתנהגות הזו ברכיבי Composables שאין להם כינוי ייחודי אחר, כמו רכיבי Composables שניתן לגלול בהם (לדוגמה, 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): אינטגרציה רציפה מאפשרת לשלב את הבדיקות בצינור עיבוד הנתונים לפריסה.
  • בדיקה של גדלים שונים של מסכים: מכיוון שיש כל כך הרבה מכשירים שזמינים למשתמשים, כדאי לבדוק את האתר בגדלים שונים של מסכים.
  • Espresso: אמנם הוא מיועד לממשקי משתמש מבוססי-תצוגה, אבל הידע של Espresso עדיין יכול לעזור בהיבטים מסוימים של בדיקות הכתיבה.