1. Globalcode – Open4education
Testes de Unidade com
Robolectric
Lucas Albuquerque / Stefan Teixeira
lucas.albuquerque12@gmail.com / stefanfk@gmail.com
2. About Lucas
Lucas Albuquerque
• Mobile / Backend Developer @ M4U
Contatos:
• E-mail: lucas.albuquerque12@gmail.com
• Facebook: facebook.com/olucasalbuquerque
• LinkedIn: linkedin.com/in/lucasalbuquerque
• GitHub: github.com/lalbuquerque
• SlideShare: slideshare.net/olucasalbuquerque
3. About Stefan
Stefan Teixeira
• QA / DevOps @ Rastreabilidade Brasil
• Mantém um blog técnico: stefanteixeira.com.br
Contatos:
• E-mail: stefanfk@gmail.com
• Twitter: twitter.com/stefan_teixeira
• Facebook: facebook.com/stefan.teixeira
• LinkedIn: linkedin.com/in/stefanteixeira
• GitHub: github.com/stefanteixeira
• SlideShare: slideshare.net/stefanteixeira
16. 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!
19. 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
29. 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. Hands-on
• Visão geral do app de exemplo: https://
github.com/lalbuquerque/notes
• Testes de unidade com Robolectric
• Cobertura de código com JaCoCo
• Build do app no CircleCI