Compose, yaygın test çerçeveleriyle entegre olur.
Espresso ile birlikte çalışabilirlik
Karma uygulamalarda, Oluşturma bileşenlerini görünüm hiyerarşilerinde ve
görünümler oluşturabilirsiniz (AndroidView
composable aracılığıyla).
Bu iki türle eşleştirmek için herhangi bir özel adım gerekmez. Görüntülemeleri şununla eşleştiriyorsunuz:
Espresso'daki onView
ve ComposeTestRule
ile öğeler oluştur.
@Test
fun androidViewInteropTest() {
// Check the initial state of a TextView that depends on a Compose state.
Espresso.onView(withText("Hello Views")).check(matches(isDisplayed()))
// Click on the Compose button that changes the state.
composeTestRule.onNodeWithText("Click here").performClick()
// Check the new value.
Espresso.onView(withText("Hello Compose")).check(matches(isDisplayed()))
}
UiAutomator ile birlikte çalışabilirlik
Varsayılan olarak, composable'lara UiAutomator'dan yalnızca
uygun tanımlayıcılar (görüntülenen metin, içerik açıklaması vb.). Şunu istiyorsanız:
Modifier.testTag
kullanan herhangi bir composable'a erişmek için
belirli bir composable'ın testTagsAsResourceId
anlamsal özelliği
alt ağaçtır. Bu davranışın etkinleştirilmesi,
Kaydırılabilir composable'lar gibi diğer benzersiz herkese açık kullanıcı adları (örneğin, LazyColumn
).
composable'lar hiyerarşinizde yüksek bir değere sahip olmaları için anlamsal özelliği
Modifier.testTag
içeren tüm iç içe yerleştirilmiş composable'ların şuradan erişilebilir olduğundan emin olun:
UiAutomator.
Scaffold(
// Enables for all composables in the hierarchy.
modifier = Modifier.semantics {
testTagsAsResourceId = true
}
){
// Modifier.testTag is accessible from UiAutomator for composables nested here.
LazyColumn(
modifier = Modifier.testTag("myLazyColumn")
){
// Content
}
}
Modifier.testTag(tag)
öğesini içeren tüm composable'lara
resourceName
ile aynı tag
boyutunu kullanarak By.res(resourceName)
arasında.
val device = UiDevice.getInstance(getInstrumentation())
val lazyColumn: UiObject2 = device.findObject(By.res("myLazyColumn"))
// Some interaction with the lazyColumn.
Ek Kaynaklar
- Android'de uygulamaları test etme: Ana Android testi açılış sayfası, testin temellerini ve tekniklerini daha kapsamlı bir şekilde gösterir.
- Testle ilgili temel bilgiler: Daha fazla bilgi bir Android uygulamasını test etmenin arkasındaki temel kavramlar hakkında.
- Yerel testler: Bazı testler yapabilirsiniz yerel olarak, kendi iş istasyonunuzda.
- Araçlı testler: İyidir araçlı testleri de yapma alıştırması yapacaksınız. Yani doğrudan yürütülen testler cihaz üzerinde.
- Sürekli entegrasyon: Sürekli entegrasyon, testlerinizi dağıtımınıza entegre etmenizi sağlar ardışık düzendir.
- Farklı ekran boyutlarını test edin: birçok cihaz varsa bunları farklı ekranlarla test etmeniz gerekir seçin.
- Espresso: Görüntülemeye dayalı olarak tasarlanmıştır. Kullanıcı arayüzleri, Espresso bilgisi Compose'un bazı yönleri için yine de yararlı olabilir teşvik etmek anlamına gelir.