/ SOFTWARE-TESTING, ANDROID

Testes no Android com Espresso — parte 1

Nesta série de posts, vou mostrar como realizar testes eficientes no seu app Android utilizando o Espresso. Além disso, conforme formos evoluindo, vou dando dicas das principais dificuldades que você provavelmente irá encontrar pelo caminho, e como resolvê-las.

Sobre o projeto

Durante toda a série de posts, vou usar o projeto EspressoTest. É um app simples que consome a API do RandomUser. O app tem 3 telas:

  1. Tela de login, com dois EditText, username e password. A única validação que está sendo feita é de campo vazio, ou seja, não estando vazios os dois campos, você pode colocar qualquer usuário e senha que ele vai fazer o login.
  2. Fazendo o login, a segunda tela é a lista dos usuários retornada pela API.
  3. Clicando em um dos itens da lista, você será direcionado para a tela de detalhes do item clicado.

As bibliotecas que estou utilizando para o app são:

É importante que você entenda bem o projeto antes de começar os testes. Por esse motivo, deixei o app bem simples para que este entendimento não tome muito tempo. Para iniciar, clone o branch start_project do projeto no github.

Sem mais enrolação, vamos à prática.

Configurando o Espresso no projeto

No arquivo build.gradle do projeto, adicione as seguintes dependências:

androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.1'  
androidTestCompile 'com.android.support.test:runner:1.0.1'

Agora dê um sync no gradle e pronto, o Espresso já está configurado corretamente.

Importante: o gradle provavelmente irá reclamar por causa da dependência support-annotations; para resolver este problema, adicione esta linha nas suas dependências:

androidTestCompile "com.android.support:support-annotations:$androidSupportVersion"

Onde $androidSupportVersion é a versão que você está utilizando para support library.

Não vou me aprofundar muito nas causas deste problema, não é o foco do post. Se quiser saber mais ou ainda estiver com problemas de dependência, dê uma olhada neste link.

Ok, agora que já configuramos o projeto, vamos começar a fazer nossos testes. Até aqui, se você tiver alguma dúvida ou teve algum problema, deixe seu comentário abaixo.

Por enquanto a única coisa que mudou no projeto que você clonou (branch start_project) foi o arquivo build.gradle. De qualquer modo, o estado final do app nesta parte do tutorial está no branch part_1.

Ir para parte 2 — Asserções simples e interações com views »