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ı erken aşamada yakalayabilir 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ı değiştirme gibi gelişmiş özellikleri de içerir. Uygulamanızın davranışını doğrulayan sağlam testler oluşturmak için bu API'leri kullanın.

Görüntülemeler

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

Başlamak için Kullanıcı arayüzü testlerini otomatikleştirme kılavuzunu inceleyebilirsiniz. Görünümleri kullanma da dahil olmak üzere cihazda çalışan testleri nasıl otomatikleştirebileceğinizi açıklar.

Temel Kavramlar

Compose kodunuzu test etmek için bilmeniz gereken bazı temel kavramlar şunlardır:

  • Semantik: Semantik, kullanıcı arayüzünüze anlam katarak testlerin belirli öğelerle etkileşime girmesine olanak tanır.
  • 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 gerçekleştirmeden veya onaylama yapmadan ö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 Compose hem de View tabanlı öğelerle çalışmasını sağlar.

Test etme ile ilgili bilgi sayfası

Compose'da test etme hakkında öğrenmeniz gereken tüm temel konuların genel bir bakışını görmek için test etme ile ilgili önemli bilgilerin yer aldığı sayfayı inceleyin.

Kurulum

Compose kodunu test etmenize olanak tanımak için uygulamanızı ayarlayın.

Ö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ül, ComposeTestRule ve Android için AndroidComposeTestRule adlı bir uygulama içerir. Bu kural aracılığıyla içerik oluşturma veya etkinliğe erişme işlemlerini ayarlayabilirsiniz. Kuralları fabrika işlevlerini kullanarak oluşturursunuz. Bunlar createComposeRule veya bir etkinliğe erişmeniz gerekiyorsa createAndroidComposeRule olabilir. Compose için tipik bir kullanıcı arayüzü testi şu şekilde görünür:

// 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'deki ana test giriş sayfası, testlerle ilgili temel bilgiler ve teknikler hakkında daha geniş bir bakış açısı sunar.
  • Testin temelleri: Android uygulamasını test etmenin temel kavramları hakkında daha fazla bilgi edinin.
  • Yerel testler: Bazı testleri kendi iş istasyonunuzda yerel olarak çalıştırabilirsiniz.
  • Araçlı testler: Araçlı testler de çalıştırmak iyi bir uygulamadır. Yani doğrudan cihazda ç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 erişebileceği çok sayıda cihaz olduğundan farklı ekran boyutlarını test etmeniz gerekir.
  • Espresso: Görüntüleme tabanlı kullanıcı arayüzleri için tasarlanmış olsa da Espresso bilgisi, Compose testinin bazı yönlerinde faydalı olabilir.

Codelab

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

Örnekler