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, conferisce significato a una parte dell'interfaccia utente. In questo contesto, "parte dell'interfaccia utente" (o elemento) può significare qualsiasi cosa, da un singolo elemento componibile a una schermata intera. L'albero semantico viene generato insieme alla gerarchia dell'interfaccia utente e la descrive.

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

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

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

Il framework semantico 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 un elemento di testo, l'albero semantico predefinito contiene solo l'etichetta di testo "Mi piace". Questo perché alcuni elementi componibili, come Text, espongono già alcune proprietà all'albero semantico. Puoi aggiungere proprietà all'albero semantico utilizzando un Modifier.

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

Risorse aggiuntive

  • Testare le app su Android: la pagina di destinazione principale dei test di Android fornisce una visione più ampia dei fondamenti e delle tecniche di test.
  • Fondamenti dei test: scopri di più sui concetti fondamentali alla base dei test di un'app per Android.
  • Test locali: puoi eseguire alcuni test localmente, sulla tua workstation.
  • Test strumentati: è buona norma eseguire anche test strumentati. Ovvero test eseguiti direttamente sul dispositivo.
  • Integrazione continua: L'integrazione continua ti consente di integrare i test nella pipeline di deployment.
  • Testare diverse dimensioni dello schermo: Con così tanti dispositivi a disposizione degli utenti, devi eseguire test per diverse dimensioni dello schermo.
  • Espresso: sebbene sia destinato alle UI basate su View, la conoscenza di Espresso può comunque essere utile per alcuni aspetti dei test di Compose.