Semântica
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os testes de IU no Compose usam semântica para interagir com a hierarquia da IU.
A semântica, como o nome indica, dá um significado para uma parte da IU. Nesse contexto,
uma "parte da interface" (ou elemento) pode significar qualquer coisa, desde um único elemento combinável até uma
tela cheia. A árvore semântica é gerada junto com a hierarquia da interface e
a descreve.
Saiba mais sobre semântica em Semântica no Compose.
Figura 1. Uma hierarquia de IU típica e a árvore de semântica dela.
O framework de semântica é usado principalmente para acessibilidade. Portanto, os testes aproveitam
as informações expostas pela semântica sobre a hierarquia da IU.
Os desenvolvedores decidem o que e quanto precisa ser exposto.
Figura 2. Um botão típico com um ícone e um texto.
Por exemplo, considerando um botão como este, que consiste em um ícone e um elemento
de texto, a árvore semântica padrão contém apenas o rótulo de texto "Like". Isso
ocorre porque alguns elementos que podem ser compostos, como Text
, já expõem algumas propriedades
à árvore semântica. É possível adicionar propriedades à árvore semântica usando um
Modifier
.
MyButton(
modifier = Modifier.semantics { contentDescription = "Add to favorites" }
)
Outros recursos
- Testar apps no Android: a página de destino principal de testes do Android oferece uma visão mais ampla dos fundamentos e técnicas de teste.
- Conceitos básicos de testes:saiba mais
sobre os principais conceitos por trás do teste de um app Android.
- Testes locais:é possível executar alguns testes
localmente, na sua própria estação de trabalho.
- Testes de instrumentação:é uma boa prática executar também testes de instrumentação. Ou seja, testes executados diretamente no dispositivo.
- Integração contínua:permite integrar seus testes ao pipeline de implantação.
- Teste diferentes tamanhos de tela:com tantos dispositivos disponíveis para os usuários, é importante testar diferentes tamanhos de tela.
- Espresso: embora seja destinado a interfaces
baseadas em visualizações, o conhecimento do Espresso ainda pode ser útil para alguns aspectos do teste
do Compose.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-27 UTC."],[],[],null,["# Semantics\n\nUI tests in Compose use *semantics* to interact with the UI hierarchy.\nSemantics, as the name implies, give meaning to a piece of UI. In this context,\na \"piece of UI\" (or element) can mean anything from a single composable to a\nfull screen. The *semantics tree* is generated alongside the UI hierarchy and\ndescribes the hierarchy.\n\nYou can learn more about semantics generally in [Semantics in Compose](/develop/ui/compose/accessibility/semantics).\n\n**Figure 1.** A typical UI hierarchy and its semantics tree.\n\nThe semantics framework is primarily used for accessibility, so tests take\nadvantage of the information exposed by semantics about the UI hierarchy.\nDevelopers decide what and how much to expose.\n\n**Figure 2.** A typical button containing an icon and text.\n\nFor example, given a button like this that consists of an icon and a text\nelement, the default semantics tree only contains the text label \"Like\". This is\nbecause some composables, such as `Text`, already expose some properties to the\nsemantics tree. You can add properties to the semantics tree by using a\n`Modifier`. \n\n MyButton(\n modifier = Modifier.semantics { contentDescription = \"Add to favorites\" }\n )\n\nAdditional Resources\n--------------------\n\n- **[Test apps on Android](/training/testing)**: The main Android testing landing page provides a broader view of testing fundamentals and techniques.\n- **[Fundamentals of testing](/training/testing/fundamentals):** Learn more about the core concepts behind testing an Android app.\n- **[Local tests](/training/testing/local-tests):** You can run some tests locally, on your own workstation.\n- **[Instrumented tests](/training/testing/instrumented-tests):** It is good practice to also run instrumented tests. That is, tests that run directly on-device.\n- **[Continuous integration](/training/testing/continuous-integration):** Continuous integration lets you integrate your tests into your deployment pipeline.\n- **[Test different screen sizes](/training/testing/different-screens):** With some many devices available to users, you should test for different screen sizes.\n- **[Espresso](/training/testing/espresso)**: While intended for View-based UIs, Espresso knowledge can still be helpful for some aspects of Compose testing."]]