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

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

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

באפליקציה היברידית, אפשר למצוא רכיבי 'פיתוח נייטיב' בתוך היררכיות של תצוגות צפיות בתכנים קומפוזביליים לכתיבה (דרך AndroidView).

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