TDC 2015 Floripa - Testes de Unidade com Robolectric

688 visualizações

Publicada em

Palestra apresentada junto com o Lucas Albuquerque (http://www.slideshare.net/olucasalbuquerque) na trilha Android do TDC 2015 Florianópolis, no dia 14/05.

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
688
No SlideShare
0
A partir de incorporações
0
Número de incorporações
32
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDC 2015 Floripa - Testes de Unidade com Robolectric

  1. 1. Globalcode – Open4education 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 • 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 @ 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
  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. ↑ # de testes ↑ feedback ↓ # de testes ↓ feedback
  11. 11. Mas e para apps Mobile?
  12. 12. http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
  13. 13. 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 manner"
  14. 14. Podemos resolver isso com o Robolectric!
  15. 15. 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!
  16. 16. Como funciona? Shadow Objects e View Resource Loading
  17. 17. 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
  18. 18. http://www.slideshare.net/joemoore1/tdd-android-applications-with-robolectric Shadow Objects
  19. 19. Shadow Objects Mas por que preciso usá-los?

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

×