הכלי Espresso Test Recorder מאפשר ליצור בדיקות של ממשק המשתמש באפליקציה בלי לכתוב קוד בדיקה. כשמקליטים תרחיש בדיקה, אפשר לתעד את האינטראקציות עם המכשיר ולהוסיף הצהרות כדי לאמת רכיבים בממשק המשתמש בתמונות מצב ספציפיות של האפליקציה. לאחר מכן, הכלי Espresso Test Recorder לוקח את ההקלטה שנשמרה ומפיק באופן אוטומטי בדיקת ממשק משתמש תואמת שאפשר להריץ כדי לבדוק את האפליקציה.
Espresso Test Recorder כותב בדיקות שמבוססות על Espresso Testing framework, שהוא API ב-AndroidX Test. ממשק ה-API של Espresso מעודד אתכם ליצור בדיקות תמציתיות ומהימנות של ממשק המשתמש על סמך פעולות משתמש. הצהרה על ציפיות, אינטראקציות וטענות בלי גישה ישירה לפעילויות ולתצוגות של האפליקציה הבסיסית מונעת תנודות בבדיקה ומייעלת את מהירות הרצת הבדיקה.
השבתת האנימציות במכשיר הבדיקה
לפני שמשתמשים ב-Espresso Test Recorder, חשוב להשבית את האנימציות במכשיר הבדיקה כדי למנוע תוצאות לא צפויות. פועלים לפי הוראות ההגדרה של Espresso, אבל חשוב לזכור שלא צריך להגדיר הפניה לתלות בספריית Espresso באופן ידני, כי כלי ההקלטה של בדיקות עושה זאת באופן אוטומטי כששומרים הקלטה. צריך לבצע את השלבים האלה רק פעם אחת לכל פרויקט.
הקלטת בדיקת Espresso
בדיקות Espresso מורכבות משני רכיבים עיקריים: אינטראקציות עם ממשק המשתמש וטענות לגבי רכיבי View. אינטראקציות עם ממשק המשתמש כוללות פעולות הקשה והקלדה שאדם עשוי להשתמש בהן כדי ליצור אינטראקציה עם האפליקציה. טענות מאמתות את קיומם של אלמנטים חזותיים במסך או את התוכן שלהם. לדוגמה, בדיקת Espresso עבור אפליקציית בדיקת ההערות עשויה לכלול אינטראקציות עם ממשק המשתמש, כמו לחיצה על לחצן וכתיבת הערה חדשה, אבל היא תשתמש באישורים כדי לוודא שהלחצן קיים ומה התוכן של ההערה.
בקטע הזה נסביר איך ליצור את שני רכיבי הבדיקה האלה באמצעות Espresso Test Recorder, ואיך לשמור את ההקלטה המוגמרת כדי ליצור את הבדיקה.
תיעוד אינטראקציות עם ממשק המשתמש
כדי להתחיל להקליט בדיקה באמצעות Espresso Test Recorder:
- לוחצים על Run > Record Espresso Test (הפעלה > הקלטת בדיקת Espresso).
- בחלון Select Deployment Target (בחירת יעד הפריסה), בוחרים את המכשיר שבו רוצים להקליט את הבדיקה. אם צריך, יוצרים מכשיר וירטואלי חדש של Android. לוחצים על אישור.
- כלי Espresso Test Recorder מפעיל בנייה של הפרויקט, והאפליקציה צריכה להיות מותקנת ומופעלת לפני שתוכלו ליצור אינטראקציה איתה באמצעות הכלי. החלון Record Your Test מופיע אחרי שהאפליקציה מופעלת, ומכיוון שעדיין לא הייתה אינטראקציה עם המכשיר, בחלונית הראשית מופיעה ההודעה 'No events recorded yet' (עדיין לא נרשמו אירועים). כדי להתחיל לרשום ביומן אירועים כמו פעולות של הקשה והקלדה, צריך ליצור אינטראקציה עם המכשיר.
הערה: לפני שתוכלו להתחיל לתעד אינטראקציות, יכול להיות שיופיע במכשיר שלכם תיבת דו-שיח עם הכיתוב 'המתנה למאתר הבאגים' או 'צירוף מאתר הבאגים'. הכלי Espresso Test Recorder משתמש במאגר הבאגים כדי לרשום ביומן אירועים בממשק המשתמש. כשמצורף מאתר הבאגים, תיבת הדו-שיח תיסגר באופן אוטומטי. אל תלחצו על סגירה בכוח.
האינטראקציות שתועדו יופיעו בחלונית הראשית בחלון Record Your Test, כמו שמוצג באיור 1 למטה. כשמריצים את הבדיקה, בדיקת Espresso מנסה לבצע את הפעולות האלה באותו סדר.

איור 1. החלון Record Your Test עם אינטראקציות מתועדות בממשק המשתמש.
הוספת הצהרות לאימות רכיבים בממשק המשתמש
הצהרות מאמתות את הקיום או את התוכן של רכיב View באמצעות שלושה סוגים עיקריים:
- text is: בודק את תוכן הטקסט של רכיב התצוגה שנבחר
- exists: בדיקה אם רכיב התצוגה קיים בהיררכיית התצוגה הנוכחית שמוצגת במסך
- לא קיים: בודק שרכיב התצוגה לא מופיע בהיררכיית התצוגות הנוכחית
כדי להוסיף הצהרה לבדיקה, מבצעים את הפעולות הבאות:
- לוחצים על Add Assertion (הוספת הצהרה). מופיעה תיבת דו-שיח של Screen Capture בזמן ש-Espresso מקבל את היררכיית ממשק המשתמש ומידע אחר על מצב האפליקציה הנוכחי. תיבת הדו-שיח נסגרת אוטומטית אחרי ש-Espresso מצלם את צילום המסך.
- פריסת המסך הנוכחי מופיעה בחלונית בצד שמאל של החלון Record Your Test. כדי לבחור רכיב View שרוצים ליצור לגביו טענה, לוחצים על הרכיב בצילום המסך או משתמשים בתפריט הנפתח הראשון בתיבה Edit assertion (עריכת טענה) בחלק התחתון של החלון. אובייקט התצוגה שנבחר מודגש בתיבה אדומה.
- בתפריט הנפתח השני בתיבה Edit assertion, בוחרים את הטענה שרוצים להשתמש בה. Espresso מאכלס את התפריט בטענות תקפות לגבי רכיב התצוגה שנבחר.
- אם בוחרים באסרשן text is, Espresso מוסיף באופן אוטומטי את הטקסט שמופיע כרגע בתוך רכיב View שנבחר. אפשר לערוך את הטקסט כך שיתאים לאישור הרצוי באמצעות שדה הטקסט בתיבה עריכת אישור.
- כדי ליצור עוד הצהרה, לוחצים על שמירה והוספה של הצהרה נוספת. כדי לסגור את חלוניות ההצהרה, לוחצים על שמירת ההצהרה.
צילום המסך באיור 2 מציג טענת "הטקסט הוא" שנוצרת כדי לוודא שהכותרת של ההערה היא "Happy Testing!":

איור 2. התיבה Edit assertion אחרי שנבחר רכיב View (באדום).
במהלך יצירת טענה, אפשר להמשיך באינטראקציה עם האפליקציה, גם אם חלוניות הטענה עדיין פתוחות בחלון Record Your Test. הכלי Espresso Test Recorder ימשיך לתעד את הפעולות שלכם, אבל האסרטיון שאתם עורכים יופיע לפני האינטראקציות האלה אחרי שתשמרו אותו. צילום המסך של האסרטיב שומר גם על הפריסה שהייתה למכשיר או לאמולטור בזמן שלחצתם על הלחצן Add Assertion (הוספת אסרטיב).
שמירת הקלטה
אחרי שמסיימים את האינטראקציה עם האפליקציה ואת הוספת הטענות, פועלים לפי השלבים הבאים כדי לשמור את ההקלטה וליצור את בדיקת Espresso:
- לוחצים על סיום ההקלטה. יופיע החלון בחירת שם לכיתת הבדיקה.
- כלי התיעוד של בדיקות Espresso נותן לבדיקה שם ייחודי בחבילה שלה
על סמך השם של הפעילות שהופעלה. אם רוצים לשנות את השם המוצע, משתמשים בשדה הטקסט שם מחלקת הבדיקה. לוחצים על שמירה.
- אם לא הוספתם את יחסי התלות של Espresso לאפליקציה, כשאתם מנסים לשמור את הבדיקה מופיעה תיבת הדו-שיח Missing Espresso dependencies (חסרים יחסי תלות של Espresso). לוחצים על כן כדי להוסיף באופן אוטומטי את התלויות לקובץ
build.gradle
.
- אם לא הוספתם את יחסי התלות של Espresso לאפליקציה, כשאתם מנסים לשמור את הבדיקה מופיעה תיבת הדו-שיח Missing Espresso dependencies (חסרים יחסי תלות של Espresso). לוחצים על כן כדי להוסיף באופן אוטומטי את התלויות לקובץ
- הקובץ נפתח אוטומטית אחרי ש-Espresso Test Recorder יוצר אותו, ו-Android Studio מציג את מחלקת הבדיקה כבחירה בחלון Project של סביבת הפיתוח המשולבת.
- המיקום שבו הבדיקה נשמרת תלוי במיקום של שורש בדיקת המכשיר ובשם החבילה של הפעילות שהופעלה. לדוגמה, בדיקות של אפליקציית הבדיקה Notes נשמרות בתיקייה src > androidTest > java > com.example.username.appname של מודול האפליקציה שבו הקלטתם את הבדיקה.
הרצת בדיקת Espresso באופן מקומי
כדי להריץ בדיקת Espresso, משתמשים בחלון Project בצד ימין של Android Studio IDE:
- פותחים את התיקייה של מודול האפליקציה הרצוי ועוברים לבדיקה שרוצים להריץ.
המיקום של הבדיקה תלוי במיקום של שורש בדיקת המכשיר ובשם החבילה של הפעילות שהופעלה. בדוגמאות הבאות אפשר לראות איפה נשמרת בדיקה באפליקציית הבדיקה Notes:
- אם אתם משתמשים בתצוגת Android בחלון, עוברים אל java > com.example.username.appname (androidTest).
- אם אתם משתמשים בתצוגה Project בתוך החלון, עוברים אל src > androidTest > java > com.example.username.appname בתוך תיקיית המודול.
- לוחצים לחיצה ימנית על הבדיקה ואז על Run ‘testName.’
- לחלופין, אפשר לפתוח את קובץ הבדיקה וללחוץ לחיצה ימנית על מחלקת הבדיקה או על שיטת הבדיקה שנוצרו. מידע נוסף על הפעלת בדיקות זמין בדף בדיקת האפליקציה.
- בחלון Select Deployment Target (בחירת יעד פריסה), בוחרים את המכשיר שבו רוצים להריץ את הבדיקה. אם צריך, יוצרים מכשיר וירטואלי חדש של Android. לוחצים על אישור.
אפשר לעקוב אחר התקדמות הבדיקה בחלון Run (הפעלה) בתחתית סביבת הפיתוח המשולבת. Android Studio מריץ build מלא של הפרויקט ופותח כרטיסייה עם שם הבדיקה בחלון Run (הרצה), כמו שמוצג באיור 3. בכרטיסייה הזו אפשר לבדוק אם הבדיקה עברה או נכשלה, וגם כמה זמן לקח להפעיל את הבדיקה. כשהבדיקה מסתיימת, ההודעה 'הבדיקות הסתיימו' מופיעה בכרטיסייה.

איור 3. דוגמה לפלט בחלון Run אחרי הרצת בדיקת Espresso באופן מקומי.
מידע נוסף על כתיבת הגדרות של הרצת בדיקה מופיע בקטע 'הגדרת בדיקה עבור כיתה או שיטה' במאמר יצירה ועריכה של הגדרות הרצה/ניפוי באגים.
הרצת בדיקת Espresso באמצעות Firebase Test Lab for Android
אתם יכולים להשתמש בבדיקות שנוצרו על ידי Espresso Test Recorder עם Firebase Test Lab כדי לבדוק את האפליקציה בענן במאות תצורות של מכשירים. אין חיוב על בדיקת האפליקציה באמצעות Test Lab במסגרת המכסה היומית בחינם בתוכנית Spark. כדי להריץ בדיקות Espresso באמצעות Firebase Test Lab, צריך ליצור פרויקט Firebase לאפליקציה ואז לפעול לפי ההוראות להפעלת הבדיקות באמצעות Firebase Test Lab מ-Android Studio.

איור 4. פלט לדוגמה בחלון Run אחרי הרצת בדיקה באמצעות Firebase Test Lab בכמה מכשירים.