AndroidX Test هو مجموعة من مكتبات Jetpack التي تتيح لك إجراء الاختبارات. مقارنةً بتطبيقات Android. كما توفر سلسلة من الأدوات لمساعدتك في كتابة هذه الاختبار.
على سبيل المثال، يوفّر AndroidX Test قواعد JUnit4 لبدء الأنشطة التفاعل معها في اختبارات JUnit4. يتضمّن أيضًا أطر عمل اختبار واجهة المستخدم، مثل مثل Espresso وUI Automator وأداة محاكاة Robolectric.
إضافة مكتبات اختبار AndroidX
لاستخدام اختبار AndroidX، يجب تعديل الموارد التابعة لمشروع تطبيقك. داخل بيئة التطوير لديك.
إضافة تبعيات Gradle
لتعديل اعتماديات مشروع تطبيقك، عليك إكمال الخطوات التالية:
- الخطوة 1: افتح ملف
build.gradle
لوحدة Gradle. - الخطوة 2: في قسم المستودعات، تأكّد من أنّ خبير Google يظهر المستودع:
allprojects {
repositories {
jcenter()
google()
}
}
- الخطوة 3: إضافة الحزمة الخاصة بكل حزمة اختبار AndroidX تريد استخدامها
باسم
قسم التبعيات. على سبيل المثال، لإضافة الحزمة
espresso-core
، أضِف السمة الأسطر التالية:
Groovy
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
في ما يلي اعتماديات اختبار AndroidX الأكثر شيوعًا المتاحة:
Groovy
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 أو
أعلى من درجة الحرارة المقترَحة
لا تنطبق الإرشادات الواردة في هذا القسم إلا إذا كنت تستهدف Android 9 (المستوى 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" />