AndroidX Test, Android uygulamalarına karşı testler çalıştırmanıza olanak tanıyan bir Jetpack kitaplıkları koleksiyonudur. Ayrıca bu testleri yazmanıza yardımcı olacak bir dizi araç da sunar.
Örneğin, AndroidX Test, etkinlikleri başlatmak ve JUnit4 testlerinde bunlarla etkileşimde bulunmak için JUnit4 kuralları sağlar. Ayrıca Espresso, UI Automator ve Robolectric simülatörü gibi kullanıcı arayüzü test çerçevelerini de içerir.
AndroidX Test kitaplıklarını ekleme
AndroidX Test'i kullanmak için geliştirme ortamınızda uygulama projenizin bağımlılıklarını değiştirmeniz gerekir.
Gradle bağımlılıkları ekleme
Uygulama projenizin bağımlılıklarını değiştirmek için aşağıdaki adımları tamamlayın:
- 1. adım: Gradle modülünüzün
build.gradle
dosyasını açın. - 2. adım: Depolar bölümünde Google'ın Maven deposunun göründüğünden emin olun:
allprojects {
repositories {
jcenter()
google()
}
}
- 3. adım: Kullanmak istediğiniz her AndroidX Test paketi için paket adını dependencies bölümüne ekleyin. Örneğin,
espresso-core
paketini eklemek için aşağıdaki satırları ekleyin:
Groovy
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
En yaygın AndroidX Test bağımlılıkları şunlardır:
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") }
Sürüm Notları sayfasında, artefakt başına en son sürümlerin yer aldığı bir tablo bulunur.
Bu kitaplıklarla ilgili referans belgeleri için Paket Dizini'ne (Package Index) veya Sınıf Dizini'ne (Class Index) bakın.
Kullanımdan kaldırılan sınıfları kullanan projeler
Uygulamanız , InstrumentationTestCase
ve TestSuiteLoader
gibi, desteği sonlandırılmış JUnit3 tabanlı android.test
sınıflara dayalı testler kullanıyorsa dosyanın android
bölümüne aşağıdaki satırları ekleyin:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
Manifest beyanları ekleme
Kullanımdan kaldırılan JUnit3 tabanlı android.test
sınıflara dayalı testler çalıştırmak için gerekli <uses-library>
öğelerini test uygulamanızın manifest dosyasına ekleyin. Örneğin, android.test.runner
kitaplığına bağlı testler ekliyorsanız uygulamanızın manifest dosyasına aşağıdaki öğeyi ekleyin:
<!-- 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" />
Belirli bir JUnit tabanlı sınıfı içeren kitaplığı belirlemek için JUnit tabanlı kitaplıklar bölümüne bakın.
Kullanımdan kaldırılan sınıfları kullanırken ve Android 9 veya sonraki sürümleri hedeflerken dikkat edilmesi gereken noktalar
daha yüksek
Bu bölümdeki yönergeler yalnızca Android 9'u (API düzeyi 28) veya sonraki sürümleri hedefliyorsanız ve uygulamanızın minimum SDK sürümü Android 9 olarak ayarlanmışsa geçerlidir.
android.test.runner
kitaplığı, android.test.base
ve android.test.mock
kitaplıklarına örtülü olarak bağlıdır. Uygulamanız yalnızca android.test.base
veya android.test.mock
sınıflarını kullanıyorsa kitaplıkları tek başlarına ekleyebilirsiniz:
<!-- 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" />