O que é o Robotium?
Robotium é uma estrutura de teste do Android para automatizar casos de teste para aplicativos nativos e híbridos. Usando o Robotium, o desenvolvedor pode criar um caso de teste de GUI automático forte para aplicativos Android. Além disso, o desenvolvedor poderia escrever um cenário de teste funcional, de sistema e de aceitação, espalhando muitas atividades Android.
Neste tutorial, você aprenderá-
- Estrutura de teste Robotium
- Como usar o Robotium
- PASSO 1) Especificação do teste de projeto
- ETAPA 2) Escreva o programa de TESTE
- PASSO 3) Executar teste
- PASSO 4) Obtenha o resultado do teste
Estrutura de teste Robotium
A estrutura de teste padrão do Android tem algumas limitações, conforme abaixo
- Incapaz de lidar com várias atividades
- O desempenho da execução do teste está lento
- Os casos de teste são complexos e difíceis de implementar
A estrutura Robotium é a melhor escolha para realizar testes em aplicativos Android
Robotium é uma estrutura de código aberto e é considerada uma extensão da estrutura de teste do Android. Usando o Robotium, o desenvolvedor pode criar casos de teste de GUI automáticos robustos para aplicativos Android. Além disso, o desenvolvedor pode escrever cenários de teste funcional, de sistema e de aceitação, abrangendo várias atividades Android.
Recursos avançados do Robotium
Classes de caso de teste Robotium
Robotium usa um conjunto de classes ( com.jayway.android.robotium.solo ) para teste . Esta classe oferece suporte a casos de teste que abrangem várias atividades. Solo é integrado ao ActivityInstrumentationTestCase2.
Integração Robotium e ActivityInstrumentationTestCase2
O testador pode escrever casos de teste sem conhecimento de design de aplicativo (teste de caixa preta) usando classes de caso de teste Robotium. É um recurso excelente em comparação com as classes de caso de teste do Android.
Como usar o Robotium
Para usar Robotium em seu projeto de teste Android, você precisa seguir as etapas abaixoUsando Robotium para realizar testes no aplicativo Android. Para garantir a qualidade do seu aplicativo Android, você deve seguir o procedimento abaixo
- Especificação de teste de design
- Desenvolver programa de teste
- Execute o caso de teste no dispositivo de destino
- Colete o resultado do teste
Procedimento de teste de aplicativo Android
PASSO 1) Especificação do teste de projeto
- Esta é a primeira etapa para testar seu aplicativo. Nesta etapa, você define o destino a ser testado. Em seu aplicativo Android, há muitos alvos que precisam ser testados, como IU, Atividade, componentes, serviços. Definir claramente o destino em seu aplicativo ajudará a obter uma ampla cobertura de teste.
- Planeje os tipos de teste que devem ser realizados (teste de unidade, teste funcional, teste de sistema).
- Projete casos de teste para cobertura máxima, mas minimize o número de casos de teste. Quanto mais o código é testado, mais chances de detecção precoce do bug.
ETAPA 2) Escreva o programa de TESTE
Esta seção o orienta como escrever um programa de teste Android usando Android Junit Test e Robotium. Suponha que você já tenha desenvolvido um nome de programa Android HelloAndroid. Este programa possui algumas funções descritas a seguir:
- Exibir um texto "Olá, mundo!" na tela.
- Exibe uma mensagem HelloAndroid quando o usuário pressiona o botão "Iniciar"
Aplicativo HelloAndroid
Requisitos de sistema
- A plataforma Android vem com a estrutura JUnit 3.0 pré-integrada.
- Para criar o projeto de teste Android a partir do Eclipse, seu computador deve ter instalado:
- Versão mais recente da plataforma Android (atualmente Android 8.1)
Você pode baixar Eclipse IDE com ADT (Android Developer Tools) integrado. Inclui os componentes essenciais do Android SDK e uma versão do Eclipse IDE.
Para a estrutura de teste do Robotium, você precisa baixar a biblioteca Robotium da página da web do Robotium.
Criar projeto de teste Android
- Clique em Arquivo -> Novo -> Outro
- Escolha: Android -> Projeto de teste do Android conforme a figura abaixo -> Escolha o próximo
Crie um novo projeto de teste Android
Escreva o nome do seu projeto de teste. Como convenção de nomenclatura, seu projeto de teste deve ser denominado "HelloAndroidTest"
Adicionar o nome do projeto de teste com base na convenção de nomenclatura
Escolha o aplicativo de destino em teste. Neste caso, este é HelloAndroid clique em Concluir
Escolha o aplicativo de destino em teste
Criar suítes de teste
Com base em sua especificação de teste, você começou a criar suítes de teste para seu programa de teste. Você pode escolher várias estruturas de teste. Neste tutorial, eu escolho a estrutura de teste padrão do Android ActivityInstrumentationTestCase2 . Você deve adicionar o arquivo da biblioteca Robotium a um diretório libs na pasta do seu projeto no caso de desejar testar com a estrutura Robotium. (Você cria a pasta lib na pasta do seu projeto).
Um caso de teste define o dispositivo para executar vários testes. Para definir um caso de teste, você deve seguir a estrutura do programa abaixo:
- Implemente uma subclasse de
TestCase
. - Defina variáveis de instância que armazenam o estado do aparelho
- Inicialize o estado do aparelho substituindo setUp ()
- Limpe após um teste substituindo tearDown ().
Estrutura do programa de teste
package com.example.helloandroid.test;import com.example.helloandroid.HelloAndroid;import com.jayway.android.robotium.solo.Solo;import android.test.ActivityInstrumentationTestCase2;import android.widget.TextView;public class HelloAndroidTest estende ActivityInstrumentationTestCase2{HelloAndroid mActivity privado;TextView mView privado;private String resourceString;solo solo privado;public HelloAndroidTest () {// TODO stub do construtor gerado automaticamentesuper ("com.example.helloandroid", HelloAndroid.class);}@Sobreporprotected void setUp () lança Exception {// TODO stub do método gerado automaticamente// super.setUp ();mActivity = this.getActivity ();solo = novo Solo (getInstrumentation (), getActivity ());mView = (TextView) mActivity.findViewById (com.example.helloandroid.R.id.textview2);resourceString = mActivity.getString (com.example.helloandroid.R.string.hello_world);}@Sobreporprotected void tearDown () lança Exception {// TODO stub do método gerado automaticamente//super.tearDown ();solo.finishOpenedActivities ();}public void testPrecondition () {assertNotNull (mView);}/ * O aplicativo de teste de destino contém uma exibição de texto "Hello World!" * /public void testSearchText () {assertEquals (resourceString, (String) mView.getText ());}/ * teste A atividade HelloAndroid no aplicativo de destino existe * /public void testCurrentActivity () lança Exception {solo.assertCurrentActivity ("atividade errada", HelloAndroid.class);}/ * A IU do aplicativo de teste contém o botão "Iniciar" * // * enviar o botão de clique do evento para o aplicativo de destino * /public void testSearchButton () lança Exception {boolean found = solo.searchButton ("Iniciar");solo.clickOnButton ("Iniciar");assertTrue (encontrado);}}
Adicionando Casos de Teste
- No mesmo pacote com TestSuite, criamos classes TestCase
- Para testar determinada atividade, por exemplo, HelloAndroid, crie uma extensão de caso de teste ActivityInstrumentationTestCase2
- Nesta classe, o testador pode obter a atividade de teste por meio do método getActivity ().
- Você pode criar um teste livremente para uma atividade de teste criando um método com o nome "teste + Nome do método original"
- No método de teste, o testador pode usar a função Android JUnit para comparar o valor real e o valor esperado. Esses métodos são mostrados a seguir.
Métodos de exemplo de estrutura Robotium e Android Testing
Esses conjuntos de testes acima verificaram que a GUI do aplicativo deve exibir um texto "Hello World!" E contém um nome de botão "Iniciar".
PASSO 3) Executar teste
Depois de terminar de escrever seu programa de teste, execute o teste usando as etapas abaixo
- Conecte o dispositivo Android ao seu PC (ou inicie o emulador, caso você não tenha um dispositivo real).
- Em seu IDE, clique com o botão direito àExecutar comoàTeste de unidade de Android
Executando programa de teste
Além de executar o teste no IDE, você pode executar o teste na linha de comando. Neste programa de teste, o pacote de teste é com.example.helloandroid.test. No terminal Linux , você pode usar o seguinte comando para executar todos os testes neste pacote:
$ adb shell am instrument -w -e pacote com.example.helloandroid.test
PASSO 4) Obtenha o resultado do teste
Após a execução do teste, você obtém os resultados do teste.
Neste programa de teste, 4 métodos de teste são executados. Nesse caso, todos os casos de teste são aprovados.
Saída do resultado do teste no caso de todos os casos de teste passarem
No caso de falha do caso de teste, a saída é exibida e mostra quais casos de teste falharam
Saída do resultado do teste no caso de todos os casos de teste falharem
Exemplos de código fonte
Este artigo inclui alguns exemplos de código-fonte que ajudam você a entender o tutorial de forma mais clara e recuperar o conhecimento técnico
- HelloAndroid: aplicativo em teste.
- HelloAndroidTest: programa de teste usando a estrutura de teste do Android