Como testar seu aplicativo android usando espresso

Como um desenvolvedor, você já sabe a importância de escrever testes para seu código. Isto é tão verdadeiro para o desenvolvimento de aplicativos Android, como é para qualquer outro tipo de desenvolvimento. Felizmente, o Android faz com que seja fácil de adicionar testes para a sua aplicação.

As informações a seguir irá levá-lo através dos fundamentos da adição de testes para seu aplicativo Android usando Espresso. Espresso é uma biblioteca que acompanha o SDK Android para fazer interfaces de testes com usuários Android mais simples.

Apenas certifique-se o seu aplicativo está usando Gradle 2.1.1 ou posterior com ferramentas de compilação Android 21.1.2 ou posterior.

Para adicionar um teste Espresso ao seu aplicativo, você vai precisar de:

  1. Modifique o seu script de construção

  2. Escrever o teste

  3. Execute o teste

Como modificar a sua construção

Abra o build.gradle arquivo para sua aplicação. Se seu aplicativo tem vários módulos, você vai querer abrir o build.gradle Arquivo do módulo de aplicativo, e não no módulo de raiz. Assim, para o aplicativo Silent Mode Toggle, você abriria SilentModeToggle / build.gradle.

Adicione o seguinte dependência para a seção dependências do seu build.gradle Arquivo:

dependências {... //Testedependências androidTestCompile `com.android.support.test.espresso: expresso-núcleo: 2,0`}

Isto diz Android Studio para incluir a biblioteca Espresso em suas dependências de teste. A biblioteca Espresso não será incorporado ao apk que você envia, mas vai ser incluído no seu apk teste para que seus testes pode usá-lo.

Em seguida, adicione o seguinte ao seu DefaultConfig:

DefaultConfig {... //otestecorredorparausarquandocorridaatestes. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}

Isto diz Android que Instrumentation usar para executar os testes. Você não precisa saber muito sobre a Instrumentação, além de que este é o que você precisa usar sempre que você deseja executar testes de café expresso.

Isso é tudo que você precisa fazer para adicionar suporte para Espresso. Em seguida, você precisa escrever o teste real.

Como escrever o teste

Para adicionar um teste para Android, você precisa ter certeza de que você colocá-lo no local certo. Abre o teu src diretório no Android Studio, e criar um novo diretório chamado androidTest se ele ainda não existir. Dentro deste diretório, crie um diretório chamado Java.

Dentro do diretório que você acabou de criar, criar um novo arquivo chamado SilentModeToggleEspressoTest.java. Você pode realmente nomeá-lo o que quiser, basta ter certeza que termina em “Test.java“.

Coloque o seguinte em seu arquivo de teste:

classe pública SilentModeToggleEspressoTestextends ActivityInstrumentationTestCase2{SilentModeToggleEspressoTest pública () {super (MainActivity.class) -}}

Isto cria uma nova classe chamada SilentModeToggleEspressoTest. estende-se ActivityInstrumentationTestCase2, que você vai usar para escrever a maioria dos testes de seu aplicativo. ActivityInstrumentationTestCase2 é parametrizado com o tipo de atividade que você deseja testar. Para o aplicativo SilentModeToggle, a atividade principal do aplicativo é chamado, apropriadamente, Atividade principal.

Sua classe de teste precisa ter um construtor padrão, e nesse construtor padrão que você vai chamar a classe construtor de super com a classe da atividade que está sendo testado. O que você escreveu até agora vai ser basicamente copiar-colar para praticamente todos os testes Android alguma vez escrever.

Antes de você pode escrever seu teste real, você precisará configurá-lo. Para fazer isso, adicione o seguinte método à sua classe de teste:

vazio @Overridepublic setUp () throws Exception {super.setUp () - getActivity () -}

Para testar uma atividade usando Espresso, você deve primeiro criar a atividade que está sendo testado. Isso é feito pelo telefone getActivity (), que cria e lança a atividade para você se ele já não existir. Você pode fazer isso acima na configuração() método para a classe, que é executado antes de cada um de seus testes são executados.

Agora, finalmente, você pode escrever o seu teste. Adicione o seguinte método à sua classe:

public void testPhoneIconIsDisplayed () {// Quando a vista phone_icon está disponível, // verificar se é displayed.onView (withId (R.id.phone_icon)) cheque (partidas (isDisplayed ())) -.}

Você precisará importar o OnView, withId, Verifica, fósforos, e é exibido métodos. Estúdio Android oferece para ajudá-lo com as importações estáticas necessárias.



testes de café expresso são projetados para ser muito fácil de ler. Como você pode ver aqui, este teste está esperando até que a vista com ID R.id.phone_icon está disponível, e uma vez que é, ele está verificando que a visão é exibida.

O próximo passo é executar o teste.

Como executar o teste

Em primeiro lugar, iniciar um emulador ou conectar seu telefone ao computador via USB.

Uma vez que o dispositivo está ligado e funcionando, certo, clique no Java diretório sob androidTest, e em seguida, escolha executar todos os testes (com o ícone Android):

Se o teste for executado com êxito, você deve ver algo como o seguinte:

Por que são testes importantes?

Por que passar por todo esse esforço apenas para adicionar um teste simples? Você pode pensar que dificilmente parece vale a pena testar essa funcionalidade básica.

O aplicativo Silent Mode Toggle é simples o suficiente para que, talvez, um programador preguiçoso pode justificar pular testes. Talvez.

Se você adicionar um par de testes para adicionar, remover e edição de tarefas para esse aplicativo, você tem a paz de espírito de saber que sempre que você fizer uma alteração, seus testes automatizados vai pegar todos os erros significativos que você introduzir.

Você realmente quer para re-teste de todas as funcionalidades do seu aplicativo em telefones, tablets, relógios e TVs, e depois fazer tudo de novo em dispositivos mais antigos para testar compatibilidade com versões anteriores? testes Adicionando pode cuidar de muito do que a dificuldade para você.

Sobre testes Espresso

testes de café expresso são escritas usando o seguinte formato:

Video: Testes de Interação usando Espresso e o recurso Espresso Test Recorder do Android Studio 2.2

onview (de Correspondência) .Executar (ViewAction) .Verificar (ViewAssertion)

A seguinte folha de fraude, cortesia do projeto Espresso 2.0, é uma ferramenta útil para escrever testes de café expresso. Ele lista a sintaxe geral para testes de café expresso, e também lista os tipos mais comuns de matchers: ViewAction e ViewAssertion.

Uma forma rápida de escrever testes de café expresso é tirar proveito da funcionalidade de autocomplete do Android Studio. Se você sabe que a maioria dos matchers estão no ViewMatchers classe, a maioria das ações Ver estão em ViewActions, ea maioria das afirmações vista estão em ViewAssertions, então você pode usar autocomplete para encontrar a correspondência direita:

Vamos adicionar mais uma

Então, com isso em mente, vamos adicionar mais um teste. Adicione as linhas em negrito para a sua classe de teste:

classe pública SilentModeToggleEspressoTestextends ActivityInstrumentationTestCase2{ AudioManageraudioManager-... @ Overridepublic vazio setUp () throws Exception {super.setUp () - Atividadeatividade=getActivity () - //RecuperaraAudioManagera partir deaatividade Audiomanager=(AudioManager) activity.getSystemService (Context.AUDIO_SERVICE) - //Façocertoaringermodoérestabelecerparanormal audioManager.setRingerMode ( AudioManager.RINGER_MODE_NORMAL) -} ... públicovaziotestCanToggleIcon (){ //Quandoaphone_iconVisãoéacessível,cliqueisto . OnView (withId (R.id.phone_icon)) executar (clique ()) - //Entãoafirmaraqueleatelefoneéagoradentrosilenciosomodo. assertTrue (RingerHelper.isPhoneSilent (Audiomanager)) - }}

Este teste encontra o botão de alternância e clica nele, em seguida, verifica se o modo silencioso do aplicativo foi ligado. o configuração() código assegura que o modo de campainha é reposto ao normal antes de o teste é executado. Agora, sempre que você fizer uma alteração em seu aplicativo, você só precisa executar esses casos de teste para ter a certeza de que você não tenha quebrado nada importante.

Se você tem um servidor de integração contínua, tudo que você precisa fazer é executar o connectedCheck -alvo em Gradle para executar seus casos de teste com cada submissão que você faz. Se você não tiver um servidor de integração contínua, no entanto, talvez agora é um bom momento para olhar em um! Confira travis-ci.org para uma boa opção.

Testando aplicativos no Android é um tema profundo e complicado, mas agora você deve ter tudo o que você precisa para começar a testar seus aplicativos!

Se você gostava de ficar mais avançado, você pode estar interessado em alguns dos seguintes recursos:

  • Usar Colher para testar no dispositivo múltiplo.

  • Experimentar Garfo para executar testes rapidamente em vários dispositivos.

  • Experimentar Travis-ci ou Jenkins para um servidor de integração contínua.

  • Assista introdução de Michael Bailey para Testing Android em Youtube.

    Video: Android oder iOS - das Experiment


Publicações relacionadas