La API de prueba de unidades de Glance te permite probar tu código de Glance sin aumentar las vistas
o necesitas un UI automator. Por ejemplo, la API de prueba de unidades te permite verificar
condiciones, como si los elementos están en una lista o si las cajas se han
marcada, con comparadores como hasContentDescriptionEqualTo
o isChecked
.
Esta API es liviana y requiere menos configuración, por lo que puedes realizar pruebas a medida que desarrollas piezas individuales de tu widget y las organizas para mejorar la reutilización del código.
Configuración
Las dependencias necesarias para usar la biblioteca de pruebas de unidades se muestran en el los siguientes ejemplos:
// 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.
Estructura de pruebas
Organiza las funciones de componibilidad fuera de la clase GlanceAppWidget
para habilitarlas
la reutilización del código
y la prueba de unidades. Reduce la complejidad de las unidades que se prueban como
tanto como sea posible.
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)
}
}
Establece el contexto y el tamaño para la prueba
Si la función de componibilidad lee el contexto con LocalContext.current()
.
debes establecer un contexto con el método LocalContext.current()
.
De lo contrario, este paso es opcional.
Puedes usar cualquier framework de prueba de unidades de Android basado en JVM, como Roboletric, para lo siguiente: proporcionar el contexto.
Si la función de componibilidad accede a LocalSize
, configura el tamaño deseado
para la prueba antes de proporcionar un elemento componible en la prueba. El tamaño predeterminado es
349 dp x 455 dp, que es equivalente a un widget de 5 x 4 que se muestra en un dispositivo Pixel 4.
en modo Retrato.
- Si el AppWidget usa
sizeMode == Single
, puedes establecer esto enminWidth
yminHeight
en el archivoinfo.xml
de tu widget. - Si el AppWidget usa
sizeMode == Exact
, puedes identificar los tamaños que prueba de manera similar a como determinas un tamaño para tu widget y identificar y probar tamaños horizontales y verticales en los que pueda aparecer el widget para ellos. - Si el AppWidget usa
sizeMode == Responsive
, puedes establecer esto en una de los tamaños de la lista que proporcionas cuando especificas elsizeMode
.
La duración predeterminada del tiempo de espera de la prueba es de 1 segundo, pero puedes pasar
de duración como argumento al método runGlanceAppWidgetUnitTest
si tu prueba
aplica un tiempo de espera diferente.
Para obtener más información y muestras de código, consulta la documentación de referencia de
runGlanceAppWidgetUnitTest