Semantica

I test dell'interfaccia utente in Compose utilizzano la semantica per interagire con la gerarchia dell'interfaccia utente. La semantica, come suggerisce il nome, dà significato a un elemento dell'interfaccia utente. In questo contesto, un "elemento dell'interfaccia utente" può essere qualsiasi cosa, da un singolo composable a un intero schermo. L'albero della semantica viene generato insieme alla gerarchia dell'interfaccia utente e descrive la gerarchia.

Per scoprire di più sulla semantica in generale, consulta Semantica in Compose.

Diagramma che mostra un layout dell'interfaccia utente tipico e il modo in cui questo layout viene mappato a un albero semantico corrispondente

Figura 1. Una gerarchia dell'interfaccia utente tipica e la relativa struttura di semantica.

Il framework di semantica viene utilizzato principalmente per l'accessibilità, pertanto i test sfruttano le informazioni esposte dalla semantica sulla gerarchia dell'interfaccia utente. Gli sviluppatori decidono cosa e quanto esporre.

Un pulsante contenente un'immagine e del testo

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

Ad esempio, dato un pulsante come questo composto da un'icona e da un elemento di testo, l'albero della semantica predefinita contiene solo l'etichetta di testo "Mi piace". Questo accade perché alcuni 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 su Android offre una visione più ampia delle nozioni di base e delle tecniche di test.
  • Nozioni di base sui 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 con strumenti: è buona prassi eseguire anche test con strumenti. ovvero i test eseguiti direttamente sul dispositivo.
  • Integrazione continua: l'integrazione continua ti consente di integrare i test nella pipeline di deployment.
  • Esegui test su diverse dimensioni dello schermo: con così tanti dispositivi a disposizione degli utenti, devi testare diverse dimensioni dello schermo.
  • Espresso: sebbene sia destinato alle UI basate su visualizzazioni, le conoscenze di Espresso possono essere utili per alcuni aspetti dei test di Compose.