Semantica

I test dell'interfaccia utente in Compose utilizzano la semantica per interagire con la gerarchia dell'UI. La semantica, come suggerisce il nome, dà significato a un'area dell'interfaccia utente. In questo contesto, un "elemento dell'interfaccia utente" (o elemento) può avere qualsiasi significato, da un singolo elemento componibile a uno schermo intero. L'albero della semantica viene generata insieme alla gerarchia dell'interfaccia utente e descrive la gerarchia.

Puoi scoprire di più sulla semantica in generale in Semantica in Compose.

Diagramma che mostra un tipico layout di UI e il modo in cui questo layout sarebbe mappato a un albero semantico corrispondente

Figura 1. Una tipica gerarchia dell'interfaccia utente e il suo albero semantico.

Il framework semantico è utilizzato principalmente per l'accessibilità, quindi i test sfruttano le informazioni esposte dalla semantica sulla gerarchia dell'interfaccia utente. Sono gli sviluppatori a decidere cosa e quanto esporre.

Un pulsante contenente un'immagine e un testo

Figura 2. Un tipico pulsante contenente un'icona e del testo.

Ad esempio, se un pulsante come questo è costituito da un'icona e da un elemento di testo, la struttura di semantica predefinita contiene solo l'etichetta di testo "Mi piace". Questo perché alcuni elementi componibili, come Text, espongono già alcune proprietà all'albero della semantica. Puoi aggiungere proprietà all'albero della semantica utilizzando un Modifier.

MyButton(
    modifier = Modifier.semantics { contentDescription = "Add to favorites" }
)

Risorse aggiuntive

  • Testare le app su Android: la pagina di destinazione principale per i test di Android offre una visione più ampia delle nozioni di base e delle tecniche di test.
  • Concetti fondamentali del test: scopri di più sui concetti fondamentali alla base del test di un'app per Android.
  • Test locali: puoi eseguire alcuni test localmente sulla tua workstation.
  • Test strumentati: è buona norma eseguire anche test strumentati. Vale a dire che i test vengono eseguiti direttamente sul dispositivo.
  • Integrazione continua: l'integrazione continua ti consente di integrare i test nella pipeline di deployment.
  • Prova schermi di dimensioni diverse: con alcuni dispositivi a disposizione degli utenti, ti conviene eseguire test per schermi di dimensioni diverse.
  • Espresso: sebbene sia destinata alle UI basate su View, le conoscenze di Espresso possono comunque essere utili per alcuni aspetti del test di Compose.