AndroidX Testi için proje oluştur

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" />