Criar testes de unidade eficazes

Testes de unidade são fundamentais para a estratégia de testes do seu app. Ao criar e executar testes de unidade no seu código, você consegue verificar facilmente se a lógica de unidades individuais está correta. A execução de testes de unidade depois de cada compilação ajuda a identificar e corrigir rapidamente as regressões de software introduzidas por mudanças no código do app.

Em geral, um teste de unidade exercita a funcionalidade da menor unidade de código possível (que pode ser um método, uma classe ou um componente) de uma maneira que possa ser repetida. Você precisa criar testes de unidade quando for preciso verificar a lógica de um código específico no seu app. Por exemplo, se você estiver fazendo o teste de unidade de uma classe, seu teste poderá verificar se a classe está no estado certo. Normalmente, a unidade de código é testada em isolamento. Seu teste só afeta e monitora as mudanças nessa unidade. Use provedores de dependências, como o Robolectric, ou um framework de simulação para isolar sua unidade das respectivas dependências.

Observação: os testes de unidade não são adequados para eventos complexos de interação da IU. Nesse caso, use os frameworks de testes de IU, conforme descrito em Automatizar testes de IU.

Em geral, para testar apps para Android, crie estes tipos de teste de unidade automatizado:

  • Testes locais: testes de unidade executados apenas na máquina local. Esses testes são compilados para execução local na Java Virtual Machine (JVM) para minimizar o tempo de execução. Caso seus testes dependam de objetos no framework do Android, recomendamos o uso do Robolectric. Para testes que requerem suas dependências, use objetos simulados para emular o comportamento delas.
  • Testes de instrumentação: testes de unidade executados em um dispositivo ou emulador Android. Esses testes têm acesso a informações de instrumentação, como o Context do app em testes. Use essa abordagem para executar testes de unidade que têm dependências complexas do Android que exigem um ambiente mais robusto, por exemplo, o Robolectric.

As lições desta aula ensinam a criar esses tipos de testes de unidade automatizados.

Lições

Criar testes de unidade locais
Saiba como criar testes de unidade que são executados na máquina local.
Criar testes de unidade de instrumentação
Saiba como criar testes de unidade que são executados em um dispositivo ou emulador Android.

Outros recursos

Para saber mais sobre o uso do Espresso em testes do Android, consulte os recursos a seguir.

Amostra

Codelabs