Testar o layout do Compose

Teste a interface do app para verificar se o comportamento do código do Compose está correto. Isso permite que você detecte erros mais cedo e melhore a qualidade do aplicativo.

O Compose fornece um conjunto de APIs de teste para encontrar elementos, verificar atributos e executar ações do usuário. Elas também incluem recursos avançados, como manipulação de tempo. Use essas APIs para criar testes robustos que verifiquem o comportamento do app.

Visualizações

Se você está trabalhando com visualizações em vez do Compose, consulte a seção geral Testar apps no Android.

Um bom ponto de partida é o guia Automatizar testes de IU. Ele explica como automatizar testes executados no dispositivo, inclusive ao usar visualizações.

Conceitos principais

Confira a seguir alguns conceitos importantes para testar seu código do Compose.

  • Semântica: os testes do Compose interagem com a interface usando semântica, que dão significado a partes da interface e são gerados com a hierarquia da interface.
  • APIs de teste: o Compose fornece APIs de teste para encontrar elementos, fazer declarações sobre o estado e as propriedades deles e realizar ações para simular interações do usuário.
  • Sincronização: por padrão, os testes do Compose são sincronizados automaticamente com a interface, aguardando que ela fique inativa antes de fazer declarações ou realizar ações.
  • Interoperabilidade: em apps híbridos, os testes podem interagir perfeitamente com elementos do Compose e com base em visualização, além de se integrar a outros frameworks de teste.

Folha de referência de testes

Consulte a folha de referência de testes para ter uma visão geral de todos os principais tópicos que você precisa aprender sobre testes no Compose.

Configurar

Configure seu app para permitir testar o código do Compose.

Primeiro, adicione as seguintes dependências ao arquivo build.gradle do módulo que contém seus testes de IU:

// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")

Esse módulo inclui uma ComposeTestRule e uma implementação para Android chamada AndroidComposeTestRule. Com essa regra, é possível definir o conteúdo do Compose ou acessar a atividade. Você cria as regras usando funções de fábrica, createComposeRule ou, se precisar acessar uma atividade, createAndroidComposeRule. Um teste de interface típico para o Compose tem esta aparência:

// file: app/src/androidTest/java/com/package/MyComposeTest.kt

class MyComposeTest {

    @get:Rule val composeTestRule = createComposeRule()
    // use createAndroidComposeRule<YourActivity>() if you need access to
    // an activity

    @Test
    fun myTest() {
        // Start the app
        composeTestRule.setContent {
            MyAppTheme {
                MainScreen(uiState = fakeUiState, /*...*/)
            }
        }

        composeTestRule.onNodeWithText("Continue").performClick()

        composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
    }
}

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 das técnicas de teste.
  • Noções básicas 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 estação de trabalho.
  • Testes instrumentados: é uma boa prática executar testes instrumentados. Ou seja, testes executados diretamente no dispositivo.
  • Integração contínua: a integração contínua permite integrar seus testes ao pipeline de implantação.
  • Teste diferentes tamanhos de tela:com alguns dispositivos disponíveis para os usuários, teste diferentes tamanhos de tela.
  • Espresso: embora seja destinado a interfaces baseadas em visualização, o conhecimento do Espresso ainda pode ser útil para alguns aspectos dos testes do Compose.

Codelab

Para saber mais, consulte o codelab sobre como testar no Jetpack Compose.

Amostras

Neste codelab, você vai aprender a criar e testar ótimas experiências em dispositivos Android Automotive OS para carros estacionados. Você aprenderá a aproveitar ao máximo a ampla variedade de telas encontradas em carros e permitir que os usuários controlem a reprodução de conteúdo em vários cenários exclusivos de carros usando mecanismos Android padrão.

In this codelab, you learn the fundamentals of the Car App Library. This library is used to build apps for Android Auto and Android Automotive OS, which can be used both while parked and driving. You learn how to reuse your implementation across both platforms and have it handle the hard stuff, like different screen configurations and input methods.

Nenhuma recomendação no momento.

Tente na sua Conta do Google.