View
257
Download
0
Category
Tags:
Preview:
Citation preview
Globalcode – Open4education
Testes de Unidade com Robolectric
Lucas Albuquerque / Stefan Teixeiralucas.albuquerque12@gmail.com / stefanfk@gmail.com
About LucasLucas 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
About StefanStefan 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
http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
↑ # de testes↓ feedback
↓ # de testes↑ feedback
“… not every unit or methodof mobile apps can be tested
in a isolated manner"
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!
Shadow ObjectsShadows são como proxies para as classes do Android
Exemplos:
ShadowImageView é o proxy de ImageView
OU
AndroidObject.someMethod() ShadowAndroidObject.someMethod()faz proxy de
http://www.slideshare.net/joemoore1/tdd-android-applications-with-robolectric
Shadow Objects
View e Resource Loading
Robolectric faz parse dos arquivos de layout e monta uma árvore de views composta pelos view objects e suas shadows.
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
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
Recommended