AndroidX Testi için proje oluştur

AndroidX Test, Android uygulamalarında test ç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 Robofactric simülatörü gibi Kullanıcı Arayüzü Testi çerçeveleri de içerir.

AndroidX Test kitaplıkları ekleyin

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 için 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 paketinin paket adını bağımlılıklar bölümüne ekleyin. Örneğin, espresso-core paketini eklemek için aşağıdaki satırları ekleyin:

Modern

dependencies {
        ...
        androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
    }

Kotlin

dependencies {
        ...
        androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion')
    }

Mevcut en yaygın AndroidX Test bağımlılıkları şunlardır:

Modern

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ı, her yapı için en son sürümlerin yer aldığı bir tablo içerir.

Bu kitaplıklarla ilgili belirli referans belgeleri için Paket Dizini veya Sınıf Dizini'ne bakın.

Kullanımdan kaldırılan sınıfları kullanan projeler

Uygulamanızda, desteği sonlandırılmış JUnit3 tabanlı android.test sınıflarını (ör. InstrumentationTestCase ve TestSuiteLoader) kullanan testler kullanılı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ı ekle

Kullanımdan kaldırılmış JUnit3 tabanlı android.test sınıflarını temel alan 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 eklerseniz aşağıdaki öğeyi uygulamanızın manifest dosyasına 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" />

JUnit tabanlı belirli bir 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 (API düzeyi 28) veya sonraki sürümleri hedefliyorsanız ve uygulamanızın minimum SDK sürümü Android 9'a ayarlanmışsa geçerlidir.

android.test.runner kitaplığı, dolaylı olarak android.test.base ve android.test.mock kitaplıklarına bağlıdır. Uygulamanız yalnızca android.test.base veya android.test.mock kapsamındaki sınıfları kullanıyorsa kitaplıkları kendiniz 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" />