Oluşturma 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 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ş ö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ı
Oluştur 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 otomatik hale getirme kılavuzu iyi bir başlangıç noktasıdır. Görünümler kullanılırken de dahil olmak üzere cihaz üzerinde çalıştırılan testleri nasıl otomatikleştirebileceğinizi açıklar.
Temel Kavramlar
Aşağıda, Compose kodunuzu test etmeye yönelik bazı temel kavramlar verilmiştir.
- Anlamsal yaklaşım: Oluşturma testleri, kullanıcı arayüzü parçalarını anlamlandıran ve kullanıcı arayüzü hiyerarşisiyle birlikte oluşturulan anlamsal veriler kullanarak kullanıcı arayüzüyle etkileşim kurar.
- Test API'leri: Compose; öğeleri bulmak, durumları ve özellikleri hakkında iddialar oluşturmak ve kullanıcı etkileşimlerini simüle etmek amacıyla işlemler gerçekleştirmek için test API'leri sağlar.
- Senkronizasyon: Oluşturma testleri varsayılan olarak kullanıcı arayüzüyle otomatik olarak senkronize olur ve iddiada bulunmadan veya işlem yapmadan önce kullanıcı arayüzünün boş olmasını bekler.
- Birlikte çalışabilirlik: Karma uygulamalarda, testler hem Oluşturma hem de Görünüm tabanlı öğelerle sorunsuz bir şekilde etkileşim kurabilir ve diğer test çerçeveleriyle entegre edilebilir.
Testlerle ilgili kısa bilgiler
Compose'da test etme hakkında öğrenmeniz gereken tüm önemli konulara genel bakış için testlerle ilgili yardımcı kısa bilgilere göz atın.
Kurulum
Kod oluşturma özelliğini test etmenize olanak tanıyacak şekilde uygulamanızı ayarlayın.
Öncelikle, aşağıdaki bağımlılıkları, kullanıcı arayüzü testlerinizi içeren modülün build.gradle
dosyasına 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 bulunmaktadır. Bu kuralı kullanarak İçerik oluştur'u
ayarlayabilir veya etkinliğe erişebilirsiniz. Kuralları, fabrika işlevlerini kullanarak createComposeRule
veya bir etkinliğe erişmeniz gerekiyorsa createAndroidComposeRule
kullanarak oluşturursunuz. Compose için tipik bir kullanıcı arayüzü testi şuna benzer:
// 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: Ana Android testi açılış sayfası, testle ilgili temel bilgiler ve teknikler hakkında daha kapsamlı bir görünüm sağlar.
- Testin temelleri: Android uygulamasını test etmenin temel kavramları hakkında daha fazla bilgi edinin.
- Yerel testler: Bazı testleri yerel olarak kendi iş istasyonunuzda çalıştırabilirsiniz.
- Araçlı testler: Araçlı testleri de çalıştırmak iyi bir uygulamadır. Yani doğrudan cihazda çalıştırılan 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 kullanımına sunulan bazı cihazlar söz konusu olduğunda, farklı ekran boyutlarını test etmeniz gerekir.
- Espresso: View tabanlı kullanıcı arayüzlerine yönelik olsa da Espresso bilgisi, Compose testinin bazı yönlerinde yararlı olabilir.
Kod Laboratuvarı
Daha fazla bilgi edinmek için Jetpack Compose Test codelab'i deneyin.
Örnekler
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Oluşturma'da anlam bilimi
- Compose'da pencere içleri
- Dikkat edilmesi gereken diğer noktalar