Qual é a diferença entre as pastas src / androidtest e src / test?


119

Em um projeto, no Android Studio, por padrão, existem duas pastas de teste.

O primeiro é src/androidTest. Esta pasta já existia na versão anterior do Android Studio. No entanto, agora há uma nova pasta de teste, por padrão src/test, e uma nova dependência testCompile 'junit: junit: 4.12'em build.gradle.

Qual pasta devo usar para teste? Quais sao as diferenças entre os dois?

Respostas:


134

src/androidTest é para testes de unidade que envolvem instrumentação Android.

src/testé para teste de unidade puro que não envolve a estrutura do Android. Você pode executar testes aqui sem executar em um dispositivo real ou emulador.

Você pode usar as duas pastas. Use o primeiro para testar o código que usa a estrutura Android. Use o segundo para testar o código que são classes Java puras. Os métodos para escrever testes são quase os mesmos.

Mais informações aqui: http://developer.android.com/tools/testing/testing_android.html



Você acabou de salvar meu dia
C Johnson,

e o androidTestDebug?
the_prole

47

Uma ótima fonte de informações relacionadas aos testes do Android em geral é a página de desenvolvedores Práticas recomendadas para testes :

  • Testes de unidade local ( /src/test/java/)

Testes de unidade executados localmente na Java Virtual Machine (JVM). Use esses testes para minimizar o tempo de execução quando seus testes não tiverem dependências de estrutura do Android ou quando você puder simular as dependências da estrutura do Android.

  • Testes instrumentados ( /src/androidTest/java/)

Testes de unidade executados em um dispositivo ou emulador Android. Esses testes têm acesso às informações de instrumentação, como o contexto do aplicativo que você está testando. Use esses testes quando seus testes tiverem dependências do Android que objetos simulados não podem satisfazer.

https://developer.android.com/training/testing/start/index.html

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.