SlideShare uma empresa Scribd logo
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
• Twitter: twitter.com/lucas_albq
• Facebook: facebook.com/olucasalbuquerque
• LinkedIn: linkedin.com/in/lucasalbuquerque
• GitHub: github.com/lalbuquerque
• SlideShare: slideshare.net/olucasalbuquerque
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
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)
Mobile Conf 2015 - Testes de Unidade com Robolectric
↑ # 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 manner"
(Daniel Knott)
http://www.ministryoftesting.com/2014/10/mobile-test-pyramid/
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
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!
Mobile Conf 2015 - Testes de Unidade com Robolectric
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
AndroidObject.someMethod() ShadowAndroidObject.someMethod()
faz proxy de
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 objects e suas shadows.
Que tipo de testes
posso fazer 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
Robolectric
x
ActivityUnitTestCase
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
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
Obrigado!

Mais conteúdo relacionado

PDF
TDC 2015 Floripa - Testes de Unidade com Robolectric
PDF
TDC 2015 - Testes de Unidade com Robolectric
PDF
TDC 2015 São Paulo - Testes Automatizados de todos os tipos utilizando biblio...
PDF
Scrum Gathering Rio 2015 - Testando na nuvem a UI e o JavaScript de sua aplic...
PDF
Torne se hip com JHipster
PDF
Testes de ponta a ponta
PDF
TDC 2015 São Paulo - Clean Code para Testers
PDF
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
TDC 2015 Floripa - Testes de Unidade com Robolectric
TDC 2015 - Testes de Unidade com Robolectric
TDC 2015 São Paulo - Testes Automatizados de todos os tipos utilizando biblio...
Scrum Gathering Rio 2015 - Testando na nuvem a UI e o JavaScript de sua aplic...
Torne se hip com JHipster
Testes de ponta a ponta
TDC 2015 São Paulo - Clean Code para Testers
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Semelhante a Mobile Conf 2015 - Testes de Unidade com Robolectric (15)

PDF
Testes: Por onde Começar?
PDF
TDC2016POA | Trilha Android - Testes no Android
PDF
TDC2016POA | Trilha Android - Testes no Android
PDF
Android DevConference - Indo além com automação de testes de apps Android
PDF
Indo além com Automação de Testes de Apps Android
PPTX
Framework de automação de teste Robotium
PPTX
Framework Robotium
PPTX
Android - Frameworks de Testes
PDF
Testes automatizados de interface no Android
PDF
Como testar sua aplicação Android com Robotium
PDF
Automação de Teste com Robotium - Tche Mobile 2014
PDF
Teste sua app e aumente as chances de mantê-la no mercado
ODP
Qualidade em Aplicações Android - Automação de Testes Funcionais com Robotium
PDF
Android DevConference - Automatizando testes sem sofrimento
PDF
Automatize seus testes de UI com a Espresso!
Testes: Por onde Começar?
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
Android DevConference - Indo além com automação de testes de apps Android
Indo além com Automação de Testes de Apps Android
Framework de automação de teste Robotium
Framework Robotium
Android - Frameworks de Testes
Testes automatizados de interface no Android
Como testar sua aplicação Android com Robotium
Automação de Teste com Robotium - Tche Mobile 2014
Teste sua app e aumente as chances de mantê-la no mercado
Qualidade em Aplicações Android - Automação de Testes Funcionais com Robotium
Android DevConference - Automatizando testes sem sofrimento
Automatize seus testes de UI com a Espresso!
Anúncio

Mais de Stefan Teixeira (20)

PDF
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
PDF
Latinoware 2016 - Continuous Delivery com ferramentas open source
PDF
Ágiles 2016 - Using open source tools to support Continuous Delivery
PDF
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
PDF
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
PDF
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
PDF
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
PDF
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
PDF
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
PDF
Minas Testing Conference 2016 - Testes de Carga com Locust
PDF
4º Encontro do Grupo de Testes Carioca - Testes de Carga com Locust
PDF
Meetup DevOps Carioca - Testes de Carga com Locust
PDF
TDC 2016 Floripa - Criando APIs REST em minutos com Spark + Java 8
PDF
TDC 2016 Floripa - Aprendendo Docker sem bruxaria
PDF
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
PDF
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
PDF
VR Dev Summit 2016 - Primeiros Passos em Automação de Testes
PDF
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
PDF
Meetup AngularJS Rio - Testes e2e para apps AngularJS com Protractor
PDF
1º Encontro do Grupo de Testes Carioca - Primeiros Passos em Automação de Testes
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Latinoware 2016 - Continuous Delivery com ferramentas open source
Ágiles 2016 - Using open source tools to support Continuous Delivery
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Minas Testing Conference 2016 - Testes de Carga com Locust
4º Encontro do Grupo de Testes Carioca - Testes de Carga com Locust
Meetup DevOps Carioca - Testes de Carga com Locust
TDC 2016 Floripa - Criando APIs REST em minutos com Spark + Java 8
TDC 2016 Floripa - Aprendendo Docker sem bruxaria
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
VR Dev Summit 2016 - Primeiros Passos em Automação de Testes
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup AngularJS Rio - Testes e2e para apps AngularJS com Protractor
1º Encontro do Grupo de Testes Carioca - Primeiros Passos em Automação de Testes
Anúncio

Último (11)

PPTX
Design - Introdução a Gestalt e teoria das formas
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Utilizando code blockes por andre backes
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Eng. Software - pontos essenciais para o início
Design - Introdução a Gestalt e teoria das formas
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Utilizando code blockes por andre backes
Tipos de servidor em redes de computador.pptx
Arquitetura de computadores - Memórias Secundárias
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Manejo integrado de pragas na cultura do algodão
Eng. Software - pontos essenciais para o início

Mobile Conf 2015 - Testes de Unidade com Robolectric