Acabei de baixar o Android Studio, que é baseado no Intellij Idea.
Como alguém criaria testes?
Percebo que existe uma opção para criar um Módulo de Teste, mas isso não parece fazer nada, apenas criar um novo projeto com src
Também tentei pressionar a tecla de atalho CTRL + AlT + T que permite criar testes de unidade em uma classe existente, mas parece que deseja colocá-lo no projeto atual. Claro que isso não ajuda com TDD
Alguém tem alguma experiência aqui?
Respostas:
Esta resposta é para pessoas que estão apenas começando com os testes do Android. Fornecerei dois exemplos simples para ajudá-lo a ver como funcionam os testes. Se você acompanhar pelos próximos 10 minutos, estará tudo pronto para começar a adicionar seus testes ao seu próprio aplicativo. Acho que você ficará surpreso com o quão fácil é. Eu certamente estava.
Introdução ao Android Testing
Existem dois tipos diferentes de testes que você fará.
Context
é um exemplo.)Crie um novo projeto e você verá as seguintes pastas padrão.
Tudo já está aí e esperando por você para criar seus testes. Já está tudo configurado!
Como criar testes de unidade locais
Abra o
ExampleUnitTest
arquivo mostrado na imagem acima. deve ser parecido com isto:Pressione a seta verde dupla para executar todos os testes ou a seta verde única para executar apenas um. (Neste caso, há apenas um teste, então ambos fazem a mesma coisa.)
Deve passar (contanto que
2 + 2
ainda esteja4
quando você estiver lendo esta resposta). Parabéns, você acabou de fazer seu primeiro teste!Fazendo seu próprio teste
Vamos escrever nosso próprio teste. Primeiro adicione esta classe ao seu projeto de aplicativo principal para que tenhamos algo para testar:
Agora mude o
addition_isCorrect()
método na classe de teste para ficar como o código a seguir (ou apenas adicione outro método com um nome diferente):Execute-o novamente e você verá que passa. Parabéns, você acabou de criar seu primeiro teste! (Bem, acho que tecnicamente era meu, mas, ei, perto o suficiente. O que é meu é seu.)
Como criar testes instrumentados
Abra o
ExampleInstrumentedTest
arquivo. deve ser parecido com isto:Pressione um desses botões verdes novamente.
Contanto que você tenha um dispositivo real conectado ou o emulador configurado, ele deve ter inicializado e executado seu aplicativo. Parabéns, você acabou de executar seu primeiro teste instrumentado!
Fazendo seu próprio teste
Os testes instrumentados usam o Espresso para executar os testes. É como se fosse seu próprio pequeno usuário de robô que você pode mandar testar seu aplicativo. Você pode dizer a ele para fazer algo como pressionar um botão ou ler as propriedades de um TextView.
Você pode escrever as instruções de como fazer o teste manualmente, mas como estamos apenas começando, vamos usar a função de gravação automática . É super simples.
Primeiro adicione um botão à sua IU para que tenhamos algo com que trabalhar. Eu fiz isso:
Em seguida, pressione Executar> Gravar teste Espresso no menu.
Depois de iniciar, clique no botão no emulador e, para finalizar, escolha OK na caixa de diálogo Registro. Ele deve gerar automaticamente o seguinte código de teste.
Ótimo! Você acabou de criar seu primeiro teste instrumentado! Isso foi super fácil. Você provavelmente deve adicionar uma afirmação para torná-lo um teste real, mas isso também é muito fácil de fazer com o gravador. Assista a este vídeo para se aprofundar um pouco mais.
Um estudo mais aprofundado
Eu primeiro assistia aos vídeos e depois lia a documentação. É tudo muito útil. O último link é para uma série de artigos que cobrem algumas coisas importantes para se pensar ao escolher o que testar.
fonte
/app
executados em root_ , no entanto, se eu executar na linha de comando do Gradle (ou CI), então será _root . (Idealmente, gostaria de acessarassets
pastas específicas quando executado de qualquer maneira).test/resources
e colocar os arquivos lá, por exemplo,test.txt
e acessá-los comgetClass().getClassLoader().getResource("test.txt")
. Decidi que acessar os ativos do APK diretamente é provavelmente uma má ideia, então lidarei com isso copiando os arquivos para teste em uma etapa de compilação ou em um processo de atualização externo. Ainda há algumas dúvidas sobre as diferentes versões do Gradle, mas ainda não enfrentei isso.Editar: a partir de 0.1.8 agora é suportado no IDE . Siga as instruções lá, em vez de usar as instruções abaixo.
Seguindo o Guia do usuário do Android Gradle Plugin, consegui fazer com que os testes funcionassem na linha de comando realizando as seguintes etapas em um projeto recém-criado (usei o pacote padrão 'com.example.myapplication'):
Isso executou meus testes e colocou os resultados do teste em MyApplicationProject / MyApplication / build / reports / instrumentTests / connected. Eu sou novo em testar aplicativos Android, mas parece que funciona bem.
De dentro do IDE, é possível tentar e executar a mesma classe de teste. Você vai precisar
No entanto, isso falha (o caminho de classe usado ao executar os testes não contém o diretório de saída do teste). No entanto, não tenho certeza de que isso funcionaria independentemente, pois é meu conhecimento que um executor de teste específico do Android é necessário.
fonte
Eu sugeriria usar o arquivo gradle.build .
Adicione um diretório src / androidTest / java para os testes (como Chris começa a explicar)
Abra o arquivo gradle.build e especifique lá:
Pressione "Sincronizar projeto com arquivo Gradle" (no painel superior). Você deve ver agora uma pasta "java" (dentro de "androidTest") de cor verde.
Agora você pode criar quaisquer arquivos de teste e executá-los.
fonte
Acho que este post de Rex St John é muito útil para testes de unidade com o Android Studio.
(fonte: rexstjohn.com )
fonte
Android Studio v.2.3.3
Destaque o contexto de código que deseja testar e use a tecla de atalho:
CTRL
+SHIFT
+T
Use a interface de diálogo para completar sua configuração.
A estrutura de teste deve espelhar o layout do pacote do projeto para obter melhores resultados, mas você pode criar testes personalizados manualmente, desde que tenha o diretório correto e as configurações de compilação.
fonte
A partir de agora (estúdio 0.61), manter a estrutura adequada do projeto é o suficiente. Não há necessidade de criar um projeto de teste separado como no eclipse (veja abaixo).
fonte
O Android Studio continua evoluindo, então as respostas acima eventualmente não serão mais aplicáveis. Para a versão atual do Android Studio 1.2.1.1, há um bom tutorial sobre testes em:
http://evgenii.com/blog/testing-activity-in-android-studio-tutorial-part-1/
fonte
Parece que uma das principais mudanças é que, com o Android Studio, o aplicativo de teste é integrado ao projeto do aplicativo.
Não tenho certeza se isso ajuda no seu problema específico, mas encontrei um guia sobre como fazer testes com um projeto do Gradle. Guia do usuário do Android Gradle
fonte
A maneira mais fácil que encontrei é simplificada na minha seguinte postagem do blog :
Boa sorte tornando seu código mais legível, sustentável e bem testado!
fonte
O Android Studio tem sido um alvo em movimento, primeiro sendo uma prévia do desenvolvedor e agora em beta. O caminho para as classes de teste no projeto mudou com o tempo, mas não importa qual versão do AS você está usando, o caminho é declarado em seu arquivo .iml. Atualmente, com a versão 0.8.3, você encontrará o seguinte dentro do arquivo iml interno:
O arquivo .iml está informando onde colocar suas classes de teste.
fonte
A partir do Android Studio 1.1, temos suporte oficial (experimental) para escrever testes de unidade (o roboelétrico também funciona).
Fonte: https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support
fonte
Adicione a lib abaixo dentro do arquivo gradle
Crie a classe HomeActivityTest dentro do diretório androidTest e antes de executar o teste adicione a string flurry_api_key e sender_id dentro do arquivo de recurso da string e altere o valor para o caso de falha e sucesso.
fonte