Oluşturma düzeninizi test etme

Compose kodunuzun davranışının doğru olduğunu doğrulamak için uygulamanızın kullanıcı arayüzünü test edin. Bu sayede hataları erkenden tespit edebilir ve uygulamanızın kalitesini artırabilirsiniz.

Compose, öğeleri bulmak, özelliklerini doğrulamak ve kullanıcı işlemlerini gerçekleştirmek için bir dizi test API'si sağlar. API'ler, zaman manipülasyonu gibi ileri seviye özellikler de içerir. Uygulamanızın davranışını doğrulayan güçlü testler oluşturmak için bu API'leri kullanın.

Görüntüleme sayısı

Compose yerine görünümlerle çalışıyorsanız genel Android'de uygulamaları test etme bölümüne bakın.

Özellikle Kullanıcı arayüzü testlerini otomatikleştirme kılavuzu iyi bir başlangıç noktasıdır. Bu kılavuzda, görünümleri kullanırken de dahil olmak üzere cihaz üzerinde çalışan testleri nasıl otomatikleştirebileceğiniz açıklanmaktadır.

Temel Kavramlar

Aşağıda, Compose kodunuzu test etmeyle ilgili bazı temel kavramlar verilmiştir:

  • Semantik: Semantik, kullanıcı arayüzünüze anlam katarak testlerin belirli öğelerle etkileşime girmesini sağlar.
  • Test API'leri: Test API'leri, öğeleri bulmanıza, özelliklerini doğrulamanıza ve kullanıcı işlemleri gerçekleştirmenize olanak tanır.
  • Senkronizasyon: Senkronizasyon, testlerin işlem yapmadan veya iddialarda bulunmadan önce kullanıcı arayüzünün boşta kalmasını beklediğini doğrular.
  • Birlikte çalışabilirlik: Birlikte çalışabilirlik, testlerin aynı uygulamada hem Oluşturma hem de Görünüm tabanlı öğelerle çalışmasını sağlar.

Test etme ile ilgili özet bilgi

Compose'da test etme hakkında öğrenmeniz gereken tüm önemli konulara genel bir bakış için test referans sayfasını inceleyin.

Kurulum

Uygulamanızı, Compose kodunu test edebileceğiniz şekilde ayarlama

Öncelikle, kullanıcı arayüzü testlerinizi içeren modülün build.gradle dosyasına aşağıdaki bağımlılıkları ekleyin:

// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")

Bu modülde bir ComposeTestRule ve Android için AndroidComposeTestRule adlı bir uygulama bulunur. Bu kural aracılığıyla Compose içeriğini ayarlayabilir veya etkinliğe erişebilirsiniz. Kuralları, createComposeRule veya bir etkinliğe erişmeniz gerekiyorsa createAndroidComposeRule fabrika işlevlerini kullanarak oluşturursunuz. Compose için tipik bir kullanıcı arayüzü testi şu şekildedir:

// file: app/src/androidTest/java/com/package/MyComposeTest.kt

class MyComposeTest {

    @get:Rule val composeTestRule = createComposeRule()
    // use createAndroidComposeRule<YourActivity>() if you need access to
    // an activity

    @Test
    fun myTest() {
        // Start the app
        composeTestRule.setContent {
            MyAppTheme {
                MainScreen(uiState = fakeUiState, /*...*/)
            }
        }

        composeTestRule.onNodeWithText("Continue").performClick()

        composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
    }
}

Ek Kaynaklar

  • Android'de uygulamaları test etme: Android testleriyle ilgili ana açılış sayfası, testle ilgili temel bilgiler ve teknikler hakkında daha geniş bir bakış açısı sunar.
  • Testlerle ilgili temel bilgiler: Android uygulamalarını test etmenin temel kavramları hakkında daha fazla bilgi edinin.
  • Yerel testler: Bazı testleri yerel olarak, kendi iş istasyonunuzda çalıştırabilirsiniz.
  • Enstrümantasyon testleri: Enstrümantasyon testleri de çalıştırmak iyi bir uygulamadır. Yani doğrudan cihaz üzerinde çalışan testler.
  • Sürekli entegrasyon: Sürekli entegrasyon, testlerinizi dağıtım ardışık düzeninize entegre etmenize olanak tanır.
  • Farklı ekran boyutlarını test edin: Kullanıcıların kullanabileceği çok sayıda cihaz olduğundan farklı ekran boyutlarını test etmeniz gerekir.
  • Espresso: Görünüm tabanlı kullanıcı arayüzleri için tasarlanmış olsa da Espresso bilgisi, Compose testinin bazı yönleri için yine de faydalı olabilir.

Codelab

Daha fazla bilgi edinmek için Jetpack Compose Testi codelab'ini deneyin.

Örnekler