testabilidade no android

Post on 28-Jan-2018

147 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

//Testabilidade no Android

/*** Created by Eduardo Cucharro*/

Eduardo Cucharro

//Desenvolvedor desde 2007

//Windows forms

//Web

//Restful Apis

//Processos backend / integrações

//Android

//Grupo Minha Vida (Time Dieta e Saúde)

Por que testar?

92% dos problemas, poderiam ser resolvidos com testes…

O que testar?

//Funcionamento da UI

//Integração entre componentes do próprio app

//Lógica do negócio/aplicação

//Integração com outros apps

//Acesso a dados

//Acesso a REST apis

Coisas a testar

Qual o seu maior problema agora?

//Funcionamento da UI - Espresso

//Integração entre componentes do próprio app - Espresso

//Lógica do negócio/aplicação - JUnit/Mockito

//Integração com outros apps - UI Automator

//Acesso a dados

//Acesso a REST apis

Coisas a testar e com o que testar

Espresso

//Espresso Core - Basic Interaction, Matches Assertions

//Espresso Contrib - RecyclerView, NavDrawer, Picker

//Hamcrest - Muitos outros matches

//Espresso Web - Uso com webviews

//Espresso Idling - Sincronização de Jobs

Espresso libs

Select > act > check

onView(withContentDescription(R.string.lunch))

.perform(scrollTo())

.check(matches(isDisplayed()));

No Espresso

Na prática…?

onView()

onData()

pressBack()

closeSoftKeyboard()

openActionBarOverflowMenu()

isDisplayed()

withText()

withChild()

isDescendantOf()

allOf()

ViewInteractions / ViewMatchers

scrollTo()

click()

swipeRight()

typeText()

longClick()

matches()

not()

startsWith()

hasSize()

is()

ViewActions / ViewAssertions

Hermetic env

Arquitetura não testável

Activity

Fragment

VolleyStatic Helpers

IOC - Service locator

Arquitetura testável

Arquitetura testável

//Separação da lógica e componentes android

//Unit testing

//Testes locais na JVM

//Mais rápido e produtivo

Arquitetura e UnitTesting

Na prática…?

Unit testing -conceitos

//3A - Arrange > Act > Assert

//Mock - Permite testar interações com o objeto

//Stub - Permite simular estado e retorno do objeto

//Fake - Implementação falsa

//Dummy - Objeto sem função (cumprindo tabela)

Nomenclatura em UnitTesting

Na prática…?

Firebase Test Lab

//N Android * N devices * Linguas

//Continuos Integration e ambiente

//Firebase Test Lab pode ajudar

//5$ device/h ou 1$ emulador/h

//Robo Tests Free

Firebase Test Lab - Considerações

Obrigado :)

ArrayList<String> aListContatos = new ArrayList<String>();

//Na Comunidade AndroidDevBR (slack)aListContatos.add(“@cuchas“);

//No Twitter

aListContatos.add(“@eduardocucharro“);

//BlogaListContatos.add(“http://cucha.com.br“);

//SlideshareaListContatos.add(“http://www.slideshare.net/eduardocucharro“);

Contatos ;)

top related