O documento discute testes de unidade para aplicativos Android usando o framework Robolectric. Ele explica como o Robolectric funciona usando objetos sombra e carregamento de recursos de view para permitir testes de unidade rápidos que rodam na JVM sem precisar de emulador ou dispositivo. Exemplos de testes de unidade possíveis com o Robolectric são apresentados em comparação com os testes de atividade do Android.
15. ↑ # de testes
↓ feedback
↓ # de testes
↑ feedback
“… not every unit or method
of mobile apps can be tested
in a isolated manner"
(Daniel Knott)
http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
17. O que é?
• Framework para Testes de Unidade
• Open-source (licença MIT)
• Mais compatível com a forma que a maioria dos
desenvolvedores Android desenvolvem
• Testes rodam na JVM (sem necessidade de
Emulador/Device)
➡ Execução MUITO rápida
➡ Um projeto da Pivotal Labs com Robolectric
rodava 1047 testes em 28s!
20. Shadow Objects
Shadows são como proxies para as classes do Android
Exemplos:
ShadowImageView é o proxy de ImageView
OU
AndroidObject.someMethod() ShadowAndroidObject.someMethod()
faz proxy de
30. Robolectric x ActivityUnitTestCase
• Android disponibilizou recentemente suporte a Unit Tests
(https://developer.android.com/training/activity-testing/
activity-unit-testing.html)
• MAS… Assim como os Instrumentation Tests, os testes
devem ser escritos com JUnit 3 :(
➡ Sem annotations
➡ Sem ignores
➡ Sem @BeforeClass / @AfterClass
➡ Sem static imports
31. Para saber mais…
• App de exemplo: https://github.com/
lalbuquerque/notes
• Projeto do app contém:
✓ Testes de unidade com Robolectric
✓ Cobertura de código com JaCoCo
✓ Build no CircleCI