تعليمات إعداد الإسبريسو

يغطّي هذا الدليل تثبيت Espresso باستخدام SDK Manager وإنشاؤه باستخدام Gradle. ننصحك باستخدام "استوديو Android".

إعداد بيئة الاختبار

لتجنُّب حدوث مشاكل في الاختبارات، ننصحك بشدة بإيقاف الرسوم المتحركة للنظام على الأجهزة الافتراضية أو الفعلية المستخدَمة للاختبار. على جهازك، ضمن الإعدادات > خيارات المطوّرين ، أوقِف الإعدادات الثلاثة التالية:

  • سرعة الصور المتحركة للنافذة
  • سرعة الصور المتحركة للنقل
  • طول مدة الرسوم المتحركة

إضافة تبعيات Espresso

لإضافة تبعيات Espresso إلى مشروعك، أكمِل الخطوات التالية:

  1. افتح ملف build.gradle لتطبيقك. عادةً ما يكون هذا الملف هو app/build.gradle وليس ملف build.gradle على المستوى الأعلى.
  2. أضِف الأسطر التالية داخل التبعيات:

أنيق

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"

مثال على ملف تصميم 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')
}

الإحصاءات

للتأكّد من أنّنا على المسار الصحيح مع كل إصدار جديد، تجمع أداة تشغيل الاختبارات إحصاءات. وعلى وجه التحديد، تحمِّل هذه الأداة قيمة تجزئة لاسم حزمة التطبيق قيد الاختبار لكل عملية استدعاء. ويتيح لنا ذلك قياس عدد الحِزم الفريدة التي تستخدم Espresso وحجم الاستخدام.

إذا كنت لا تريد تحميل هذه البيانات، يمكنك إيقاف هذه الميزة من خلال تضمين الوسيطة disableAnalytics في أمر أجهزة القياس:

adb shell am instrument -e disableAnalytics true

إضافة الاختبار الأول

ينشئ "استوديو Android" الاختبارات تلقائيًا في 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" أو من سطر الأوامر.

في "استوديو Android"

لإنشاء إعداد اختبار في "استوديو Android"، أكمِل الخطوات التالية:

  1. افتح تشغيل > تعديل الإعدادات.
  2. أضِف إعدادًا جديدًا لاختبارات Android.
  3. اختَر وحدة.
  4. أضِف أداة تشغيل أجهزة قياس معيّنة: androidx.test.runner.AndroidJUnitRunner
  5. شغِّل الإعداد الذي تم إنشاؤه حديثًا.

من سطر الأوامر

نفِّذ أمر Gradle التالي:

./gradlew connectedAndroidTest