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