הוראות להתקנת אספרסו

מדריך זה עוסק בהתקנת Espresso באמצעות SDK Manager ופיתוח שלו באמצעות Gradle. מומלץ להשתמש ב-Android Studio.

הגדרת סביבת הבדיקה

כדי להימנע מבהירות, מומלץ מאוד לכבות את אנימציות המערכת. את המכשירים הווירטואליים או הפיזיים שמשמשים לבדיקה. במכשיר, בקטע הגדרות > בוחרים באפשרות למפתחים: משביתים את 3 ההגדרות הבאות:

  • קנה מידה לאנימציה של חלון
  • קנה מידה של הנפשת מעבר
  • קנה מידה למשך זמן אנימציה

הוספת יחסי תלות של אספרסו

כדי להוסיף יחסי תלות של Espresso לפרויקט:

  1. פותחים את הקובץ build.gradle של האפליקציה. בדרך כלל זהו לא הקובץ build.gradle ברמה העליונה, אלא app/build.gradle.
  2. מוסיפים את השורות הבאות בתוך יחסי התלות:

Groovy

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:

Groovy

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Kotlin

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

דוגמה לקובץ build של Gradle

Groovy

plugins {
  id 'com.android.application'
}

android {
    compileSdkVersion 33

    defaultConfig {
        applicationId "com.my.awesome.app"
        minSdkVersion 21
        targetSdkVersion 33
        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(33)

    defaultConfig {
        applicationId = "com.my.awesome.app"
        minSdkVersion(21)
        targetSdkVersion(33)
        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')
}

ניתוח נתונים

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

  1. פותחים את Run > עורכים את ההגדרות האישיות.
  2. הוספת הגדרה אישית חדשה של Android Tests.
  3. בוחרים מודול.
  4. הוספת רכיב אינסטרומנטלי ספציפי: androidx.test.runner.AndroidJUnitRunner
  5. מריצים את ההגדרות האישיות החדשות.

משורת הפקודה

מריצים את הפקודה הבאה של Gradle:

./gradlew connectedAndroidTest