AndroidX Test هو مجموعة من مكتبات Jetpack التي تتيح لك إجراء الاختبارات على تطبيقات Android. كما أنه يوفر سلسلة من الأدوات لمساعدتك في كتابة هذه الاختبارات.
على سبيل المثال، يوفّر AndroidX Test قواعد JUnit4 لبدء الأنشطة والتفاعل معها في اختبارات JUnit4. ويتضمّن أيضًا إطارات عمل اختبار واجهة المستخدم، مثل Espresso وUI Automator وRobolectric مُحاكي.
إضافة مكتبات اختبار AndroidX
لاستخدام AndroidX Test، يجب تعديل تبعيات مشروع التطبيق ضمن بيئة التطوير.
إضافة تبعيات Gradle
لتعديل تبعيات مشروع تطبيقك، أكمِل الخطوات التالية:
- الخطوة 1: افتح ملف
build.gradle
الخاص بوحدة Gradle. - الخطوة 2: في قسم "المستودعات"، تأكَّد من ظهور مستودع Maven من Google:
allprojects {
repositories {
jcenter()
google()
}
}
- الخطوة 3: لكل حزمة اختبار من AndroidX تريد استخدامها، أضِف اسم الحزمة الخاص بها إلى قسم التبعيات. على سبيل المثال، لإضافة حزمة
espresso-core
، أضِف الأسطر التالية:
رائع
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
في ما يلي أكثر العناصر الاعتمادية المتاحة لاختبار AndroidX:
رائع
dependencies { // Core library androidTestImplementation "androidx.test:core:$androidXTestVersion0" // AndroidJUnitRunner and JUnit Rules androidTestImplementation "androidx.test:runner:$testRunnerVersion" androidTestImplementation "androidx.test:rules:$testRulesVersion" // Assertions androidTestImplementation "androidx.test.ext:junit:$testJunitVersion" androidTestImplementation "androidx.test.ext:truth:$truthVersion" // Espresso dependencies androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-accessibility:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion" androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion" // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK’"s compile classpath or the test APK // classpath. androidTestImplementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" }
Kotlin
dependencies { // Core library androidTestImplementation("androidx.test:core:$androidXTestVersion") // AndroidJUnitRunner and JUnit Rules androidTestImplementation("androidx.test:runner:$testRunnerVersion") androidTestImplementation("androidx.test:rules:$testRulesVersion") // Assertions androidTestImplementation("androidx.test.ext:junit:$testJunitVersion") androidTestImplementation("androidx.test.ext:truth:$truthVersion") // Espresso dependencies androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion") androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion") // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK"s compile classpath or the test APK // classpath. androidTestImplementation( "androidx.test.espresso:espresso-idling-resource:$espressoVersion") }
تحتوي صفحة ملاحظات الإصدار على جدول يحتوي على أحدث الإصدارات لكل عنصر.
راجع فهرس الحزمة أو فهرس الفئة للحصول على مستندات مرجعية محددة حول هذه المكتبات.
المشاريع التي تستخدم فئات تم إيقافها نهائيًا
إذا كان تطبيقك يستخدم اختبارات تعتمد على فئات android.test
المتوقفة نهائيًا والمستندة إلى JUnit3، مثل InstrumentationTestCase
وTestSuiteLoader
، أضِف الأسطر التالية في القسم android
من الملف:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
إضافة بيانات البيان
لإجراء الاختبارات التي تعتمد على فئات android.test
المتوقّفة نهائيًا والمستندة إلى JUnit3، عليك إضافة
عناصر <uses-library>
اللازمة إلى بيان التطبيق التجريبي. على سبيل المثال، إذا أضفت اختبارات تعتمد على مكتبة android.test.runner
، يمكنك إضافة العنصر التالي إلى ملف بيان تطبيقك:
<!-- You don't need to include android:required="false" if your app's
minSdkVersion is 28 or higher. -->
<uses-library android:name="android.test.runner"
android:required="false" />
لتحديد المكتبة التي تحتوي على فئة معيّنة تعتمد على JUnit، يمكنك الاطّلاع على المكتبات المستندة إلى JUnit.
الاعتبارات الواجب مراعاتها عند استخدام فئات تم إيقافها نهائيًا واستهداف Android 9 أو
أعلى من درجة الحرارة المقترَحة
لا تنطبق الإرشادات الواردة في هذا القسم إلا إذا كنت تستهدف الإصدار 9 من Android (المستوى 28 لواجهة برمجة التطبيقات) أو إصدارًا أحدث وتم ضبط الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لتطبيقك على Android 9.
تعتمد مكتبة android.test.runner
ضمنيًا على مكتبتَي android.test.base
وandroid.test.mock
. إذا كان تطبيقك يستخدم الصفوف من
android.test.base
أو android.test.mock
فقط، يمكنك تضمين المكتبات
بأنفسها:
<!-- For both of these declarations, you don't need to include
android:required="false" if your app's minSdkVersion is 28
or higher. -->
<uses-library android:name="android.test.base"
android:required="false" />
<uses-library android:name="android.test.mock"
android:required="false" />