SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
A N D R O I D
TESTANDO COM ARCHITECTURE
COMPONENTS
TDC São Paulo 2018
ALINHANDO EXPECTATIVAS DA APRESENTAÇÃO
O que não é:
A. TDD
B. Como testar em
Android
C. Tutorial de como
usar os
Architecture
Components
2
O que é:
A. Introdutória
B. Testes específicos
com Architecture
Components
C. Apresentação com
exemplos de
código
BREVE INTRO SOBRE ARCHITECTURE COMPONENTS
Acho que não precisamos falar dos
benefícios de uma boa arquitetura ou
quanto tempo ficamos esperando por isso
3
MVC
MVVM
MVP
VIPER
MVI
2015-2016
Basta separar em
camadas que ta tudo bem
É porque
Android é
ruim de
testar mesmo
4
REGRA DE OURO DOS ARCHITECTURE COMPONENTS
5
Como o ciclo de vida da aplicação é
algo que não está sob seu controle,
você não deveria guardar dados ou
estado nos componentes do framework
Android.
REGRA DE OURO DOS ARCHITECTURE COMPONENTS
6
Single source of truth
ARQUITETURA SUGERIDA - MVVM
7
Single Source
of Truth
8
Sabemos que os Architecture
Components não são bala de prata. A
sua utilização dependerá muito do seu
projeto.
9
ONDE ESTÃO OS ARCHITECTURE COMPONENTS
10
Data Binding
LiveData
Lifecycles
Room
ViewModel
Vamos ver código!
11
Sem RX
12
Sem Dagger
13
Architecture Components Puro!
14
APLICAÇÃO
15
https://jsonplaceholder.typicode.com/
MODEL
16
17
O que testar?
18
MINHA ESTRATÉGIA PARA FAZER TESTES
A. Teste tudo que está exposto para outras classes
B. Teste tudo que é parametrizável
C. Teste todos os fluxos e caminhos
19
20
21
22
Primeiro desafio: LiveData e seu
assincronismo
23
24
25
26
27
28
29
30
Bônus Migration Tests
31
REMOTE DATA
32
33
34
REPOSITORY
35
36
Setup
37
38
testImplementation "android.arch.core:core-testing:1.1.1"
39
40
41
42
VIEWMODEL
43
44
45
APLICAÇÃO
46
47
Mesmo desafio: LiveData e seu
assincronismo
48
49
50
REPOSITORY
51
52
. . .
APLICAÇÃO
53
Setup
54
55
56
57
58
59
Camada Tipo de teste Ferramentas Observação
View Instrumentado de UI
Espresso,
Robolectric*
Mocks podem ser
utilizados ou não
dependendo do nível de
integração
ViewModel Unitário JUnit, Mockito
Mock do
Repositório
Repository Unitário JUnit, Mockito
Mock do DAO e
do Remote
Model Instrumentado AndroidJUnit4 -
Remote -
MockWebServer,
NanoHTTPD
-
Codebase com 9 classes no código de
produção e 5 classes de teste
https://github.com/phellipealexandre/
ArchitectureComponentsTesting
60
Feedbacks & Contato:
Phellipe Silva
Medium: @phellipealexandre
pafsilva@thoughtworks.com
OBRIGADO!

Mais conteúdo relacionado

Semelhante a Architecture components testing TDC SP 2018

Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
ViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de ArquiteturaViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de ArquiteturaVinícius Thiengo
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSAnderson Contreira
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Leandro Silva
 
Treinamentos_CONTROLES ABB_PPMV2016_v2.ppt
Treinamentos_CONTROLES ABB_PPMV2016_v2.pptTreinamentos_CONTROLES ABB_PPMV2016_v2.ppt
Treinamentos_CONTROLES ABB_PPMV2016_v2.pptssusere8f3f3
 
Apresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. Mecânica
Apresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. MecânicaApresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. Mecânica
Apresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. MecânicaCarlos Alberto
 
Application insights + ASP.NET Core
Application insights + ASP.NET CoreApplication insights + ASP.NET Core
Application insights + ASP.NET CoreLetticia Nicoli
 
DESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEIS
DESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEISDESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEIS
DESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEISMarco Coghi
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAWilson Mendes
 
Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...
Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...
Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...Anderson Garcia
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHHugo Ferreira
 

Semelhante a Architecture components testing TDC SP 2018 (20)

Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Unit test & TDD
Unit test & TDDUnit test & TDD
Unit test & TDD
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
ViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de ArquiteturaViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de Arquitetura
 
BIMnet - Apresentação 08 Termosul
BIMnet - Apresentação 08 TermosulBIMnet - Apresentação 08 Termosul
BIMnet - Apresentação 08 Termosul
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWS
 
Angular 2
Angular 2Angular 2
Angular 2
 
ECOMASJOR
ECOMASJORECOMASJOR
ECOMASJOR
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
 
Angular js
Angular jsAngular js
Angular js
 
Microservices
MicroservicesMicroservices
Microservices
 
Treinamentos_CONTROLES ABB_PPMV2016_v2.ppt
Treinamentos_CONTROLES ABB_PPMV2016_v2.pptTreinamentos_CONTROLES ABB_PPMV2016_v2.ppt
Treinamentos_CONTROLES ABB_PPMV2016_v2.ppt
 
Apresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. Mecânica
Apresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. MecânicaApresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. Mecânica
Apresentação do meu Trabalho de Conclusão do Curso de Eng. Ind. Mecânica
 
Application insights + ASP.NET Core
Application insights + ASP.NET CoreApplication insights + ASP.NET Core
Application insights + ASP.NET Core
 
DESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEIS
DESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEISDESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEIS
DESENVOLVIMENTO DE SOFTWARES PARA TERMINAIS MÓVEIS
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
 
Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...
Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...
Como a Pré-Construção influencia o desempenho dos Data Centers. Por Anderson ...
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BH
 

Architecture components testing TDC SP 2018