AndroidX Test مجموعه ای از کتابخانه های Jetpack است که به شما امکان می دهد آزمایش هایی را بر روی برنامه های اندروید اجرا کنید. همچنین مجموعه ای از ابزارها را برای کمک به شما در نوشتن این تست ها فراهم می کند.
به عنوان مثال، AndroidX Test قوانین JUnit4 را برای شروع فعالیت ها و تعامل با آنها در تست های JUnit4 ارائه می دهد. همچنین شامل چارچوبهای تست UI مانند اسپرسو، 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" }
کاتلین
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" }
کاتلین
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") }
صفحه یادداشتهای انتشار حاوی جدولی با آخرین نسخههای هر مصنوع است.
برای مستندات مرجع خاص در مورد این کتابخانه ها به Package Index یا Class Index مراجعه کنید.
پروژه هایی که از کلاس های منسوخ استفاده می کنند
اگر برنامه شما از تستهایی استفاده میکند که به کلاسهای 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 (سطح API 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" />