Glance unit test API'si, görünümleri şişirmeden Glance kodunuzu test etmenizi sağlar
veya kullanıcı arayüzü otomatikleştiricisi
gerekiyor. Örneğin, birim test API'si, uygulamanızın
öğelerin listede olup olmadığı veya kutuların
hasContentDescriptionEqualTo
veya isChecked
gibi eşleştiriciler kullanarak kontrol edilir.
Bu API hafiftir ve daha az kurulum gerektirir, böylece test odaklı olarak gerçekleştirebilirsiniz widget'ınızın bağımsız parçalarını geliştirip bunları özelleştirerek kodların yeniden kullanımını iyileştirir.
Kurulum
Birim test kitaplığını kullanmak için gereken bağımlılıklar şu örneklere bakabilirsiniz:
// Other Glance and Compose runtime dependencies.
...
testImplementation 'androidx.glance:glance-testing:1.1.0'
testImplementation 'androidx.glance:glance-AppWidget-testing:1.1.0'
testImplementation 'org.robolectric:robolectric:4.11.1'
...
// You may include additional dependencies, such as Robolectric, if your test
// needs to set a LocalContext.
Test yapısı
Etkinleştirmek için GlanceAppWidget
sınıfının dışında composable işlevleri düzenleyin
kod yeniden kullanımı ve birim testi. Teste tabi olan birimlerinizin karmaşıklığını
mümkün olduğunca çok şey katın.
class MyGlanceComposableTest {
@Test
fun myNewsItemComposable_largeSize_hasAuthorAsSubtitle() = runGlanceAppWidgetUnitTest {
// Prepare inputs and state
setAppWidgetSize(100.dp, 100.dp)
// Set the composable under test
provideComposable {
MyNewsItemComposable(TEST_NEWS_ITEM)
}
// Perform assertions
onNode(hasTestTag("subTitle"))
.assertHasText(TEST_NEWS_ITEM.authorName)
}
}
Test için bağlamı ve boyutu ayarlayın
composable fonksiyonunuz LocalContext.current()
kullanarak bağlamı okuyorsa
yöntemini kullanmak için LocalContext.current()
yöntemini kullanarak bir bağlam ayarlamanız gerekir.
Aksi takdirde bu adım isteğe bağlıdır.
Roboletric gibi JVM tabanlı herhangi bir Android birim testi çerçevesini kullanarak bağlama sahip olur.
composable işleviniz LocalSize
işlevine erişiyorsa amaçlanan boyutu ayarlayın
teste tabi tutulması gerekir. Varsayılan boyut
349.dp x 455.dp (Pixel 4 cihazda gösterilen 5x4 widget'a eşdeğerdir)
bir arka plan rengi.
- AppWidget'ınız
sizeMode == Single
kullanıyorsa bunu Widget'ınızıninfo.xml
dosyasındaminWidth
veminHeight
. - AppWidget'ınız
sizeMode == Exact
kullanıyorsa boyutları tanımlayarak Widget'ınız için boyut belirlediğiniz ve bu adımların widget'ınızın görünebileceği yatay ve dikey boyutları belirleyip test edin. optimize edebilirsiniz. - AppWidget'ınız
sizeMode == Responsive
kullanıyorsa bunu şunlardan birine ayarlayabilirsiniz:sizeMode
belirtirken sağladığınız listedeki boyutları kullanın.
Test zaman aşımı için varsayılan süre 1 saniyedir, ancak özel bir zaman aşımı süresi
testiniz varsa runGlanceAppWidgetUnitTest
yöntemi için bağımsız değişken olarak
farklı bir zaman aşımı süresi uygulanır.
Daha fazla bilgi ve kod örnekleri için şuraya bakın:
runGlanceAppWidgetUnitTest
.