במדריך הזה מוסבר איך להתקין את Espresso באמצעות SDK Manager ואיך ליצור אותו באמצעות Gradle. מומלץ להשתמש ב-Android Studio.
הגדרת סביבת הבדיקה
כדי למנוע חוסר יציבות, מומלץ מאוד להשבית את האנימציות של המערכת במכשירים הווירטואליים או הפיזיים שמשמשים לבדיקה. במכשיר, בקטע הגדרות > אפשרויות למפתחים, משביתים את 3 ההגדרות הבאות:
- קנה מידה לאנימציה של חלון
- קנה מידה של הנפשת מעבר
- קנה מידה למשך זמן אנימציה
הוספת יחסי תלות של Espresso
כדי להוסיף לפרויקט יחסי תלות של Espresso:
- פותחים את הקובץ
build.gradleשל האפליקציה. בדרך כלל זה לא הקובץbuild.gradleברמה העליונה, אלאapp/build.gradle. - מוסיפים את השורות הבאות בתוך יחסי התלות:
מגניב
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test:rules:1.6.1'
Kotlin
androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1') androidTestImplementation('androidx.test:runner:1.6.1') androidTestImplementation('androidx.test:rules:1.6.1')
לרשימה המלאה של יחסי התלות של Gradle
הגדרת כלי ההרצה של המדידה
מוסיפים לאותו קובץ build.gradle את השורה הבאה ב-android.defaultConfig:
מגניב
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Kotlin
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
קובץ build לדוגמה של Gradle
מגניב
plugins { id 'com.android.application' } android { compileSdkVersion 36 defaultConfig { applicationId "com.my.awesome.app" minSdkVersion 23 targetSdkVersion 36 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } } dependencies { androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' }
Kotlin
plugins { id("com.android.application") } android { compileSdkVersion(36) defaultConfig { applicationId = "com.my.awesome.app" minSdkVersion(23) targetSdkVersion(36) versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } } dependencies { androidTestImplementation('androidx.test:runner:1.6.1') androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1') }
Analytics
כדי לוודא שאנחנו בכיוון הנכון בכל גרסה חדשה, כלי ההרצה של הבדיקות אוסף נתונים לניתוח. באופן ספציפי יותר, הוא מעלה גיבוב (hash) של שם החבילה של האפליקציה שנבדקת בכל הפעלה. כך אנחנו יכולים למדוד גם את מספר החבילות הייחודיות שמשתמשות ב-Espresso וגם את נפח השימוש.
אם אתם לא רוצים להעלות את הנתונים האלה, אתם יכולים לבטל את ההסכמה על ידי הוספת הארגומנט disableAnalytics לפקודת האינסטרומנטציה:
adb shell am instrument -e disableAnalytics true
הוספת הבדיקה הראשונה
כברירת מחדל, Android Studio יוצר בדיקות ב-src/androidTest/java/com.example.package/.
דוגמה לבדיקת JUnit4 באמצעות כללים:
Kotlin
@RunWith(AndroidJUnit4::class) @LargeTest class HelloWorldEspressoTest { @get:Rule val activityRule = ActivityScenarioRule(MainActivity::class.java) @Test fun listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())) } }
Java
@RunWith(AndroidJUnit4.class) @LargeTest public class HelloWorldEspressoTest { @Rule public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())); } }
הרצת בדיקות
אתם יכולים להריץ את הבדיקות ב-Android Studio או משורת הפקודה.
ב-Android Studio
כדי ליצור הגדרת בדיקה ב-Android Studio, מבצעים את השלבים הבאים:
- פותחים את Run > Edit Configurations (הרצה > עריכת הגדרות אישיות).
- מוסיפים הגדרה חדשה של בדיקות Android.
- בוחרים מודול.
- מוסיפים כלי ספציפי להרצת אינסטרומנטציה:
androidx.test.runner.AndroidJUnitRunner - מריצים את ההגדרה החדשה שנוצרה.
משורת הפקודה
מריצים את הפקודה הבאה של Gradle:
./gradlew connectedAndroidTest