Compose משתלב עם מסגרות בדיקה נפוצות.
יכולת פעולה הדדית עם 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
).
מומלץ להפעיל את המאפיין הסמנטי רק פעם אחת ברמה גבוהה בהיררכיית הרכיבים הניתנים לשילוב, כדי לוודא שאפשר לגשת מ-UiAutomator לכל הרכיבים הניתנים לשילוב בתצוגת עץ עם Modifier.testTag
.
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 עדיין יכול לעזור בחלק מהיבטים של בדיקת Compose.