Testes de Unidade com
Robolectric
Lucas Albuquerque / Stefan Teixeira
lucas.albuquerque12@gmail.com / stefanfk@gmail.com
About Lucas
Lucas Albuquerque
• Mobile / Backend Developer @ M4U
Contatos:
• E-mail: lucas.albuquerque12@gmail.com
• Twitt...
About Stefan
Stefan Teixeira
• QA / DevOps
• Mantém um blog técnico: stefanteixeira.com.br
Contatos:
• E-mail: stefanfk@gm...
Como vocês testam
apps Android?
Pergunta:
(a) Testes manuais
(b) Testes pela UI
(c) Testes de Unidade
(d) Testes são para os fracos
Pirâmide de
Automação de Testes
Pirâmide de Automação de Testes
(Mike Cohn - Succeeding With Agile)
↑ # de testes
↑ feedback
↓ # de testes
↓ feedback
Mas e para apps
Mobile?
(Daniel Knott)
http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
↑ # de testes
↓ feedback
↓ # de testes
↑ feedback
“… not every unit or method
of mobile apps can be tested
in a isolated m...
Podemos resolver isso com o
Robolectric!
O que é?
• Framework para Testes de Unidade
• Open-source (licença MIT)
• Mais compatível com a forma que a maioria dos
de...
Como funciona?
Shadow Objects
e
View Resource Loading
Shadow Objects
Shadows são como proxies para as classes do Android
Exemplos:
ShadowImageView é o proxy de ImageView
OU
And...
http://www.slideshare.net/joemoore1/tdd-android-applications-with-robolectric
Shadow Objects
Shadow Objects
Mas por que preciso usá-los?

View e Resource Loading
Robolectric faz parse dos
arquivos de layout e monta uma
árvore de views composta pelos
view objec...
Que tipo de testes
posso fazer com
Robolectric?
Robolectric
x
ActivityUnitTestCase
Robolectric x ActivityUnitTestCase
• Android disponibilizou recentemente suporte a Unit Tests
(https://developer.android.c...
Para saber mais…
• App de exemplo: https://github.com/
lalbuquerque/notes
• Projeto do app contém:
✓ Testes de unidade com...
Obrigado!
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
Mobile Conf 2015 - Testes de Unidade com Robolectric
Próximos SlideShares
Carregando em…5
×

Mobile Conf 2015 - Testes de Unidade com Robolectric

766 visualizações

Publicada em

Short talk apresentada na trilha Mobile do Mobile Conf 2015, no dia 30/05.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
766
No SlideShare
0
A partir de incorporações
0
Número de incorporações
60
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mobile Conf 2015 - Testes de Unidade com Robolectric

  1. 1. Testes de Unidade com Robolectric Lucas Albuquerque / Stefan Teixeira lucas.albuquerque12@gmail.com / stefanfk@gmail.com
  2. 2. About Lucas Lucas Albuquerque • Mobile / Backend Developer @ M4U Contatos: • E-mail: lucas.albuquerque12@gmail.com • Twitter: twitter.com/lucas_albq • Facebook: facebook.com/olucasalbuquerque • LinkedIn: linkedin.com/in/lucasalbuquerque • GitHub: github.com/lalbuquerque • SlideShare: slideshare.net/olucasalbuquerque
  3. 3. About Stefan Stefan Teixeira • QA / DevOps • 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
  4. 4. Como vocês testam apps Android? Pergunta:
  5. 5. (a) Testes manuais
  6. 6. (b) Testes pela UI
  7. 7. (c) Testes de Unidade
  8. 8. (d) Testes são para os fracos
  9. 9. Pirâmide de Automação de Testes
  10. 10. Pirâmide de Automação de Testes (Mike Cohn - Succeeding With Agile)
  11. 11. ↑ # de testes ↑ feedback ↓ # de testes ↓ feedback
  12. 12. Mas e para apps Mobile?
  13. 13. (Daniel Knott) http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
  14. 14. ↑ # 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/
  15. 15. Podemos resolver isso com o Robolectric!
  16. 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!
  17. 17. Como funciona? Shadow Objects e View Resource Loading
  18. 18. 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
  19. 19. http://www.slideshare.net/joemoore1/tdd-android-applications-with-robolectric Shadow Objects
  20. 20. Shadow Objects Mas por que preciso usá-los?

  21. 21. View e Resource Loading Robolectric faz parse dos arquivos de layout e monta uma árvore de views composta pelos view objects e suas shadows.
  22. 22. Que tipo de testes posso fazer com Robolectric?
  23. 23. Robolectric x ActivityUnitTestCase
  24. 24. 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
  25. 25. 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
  26. 26. Obrigado!

×