automatize seus testes de ui com a espresso!
TRANSCRIPT
![Page 1: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/1.jpg)
about.me/ramonrabelloRamon Rabello
Automatize seus testes de UI com a Espresso!
![Page 2: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/2.jpg)
~ 10 anosSenior Developer
about.me/ramonrabelloRamon Rabello
Paixão por Comunidades!Agilista
OrganizerGDG Brasília
BB Tecnologia e ServiçosLíder de Inovação
CEO, VisyoEmpreendedor
AndroidInstrutor / Consultor
![Page 3: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/3.jpg)
Por que eu devo testar?
![Page 4: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/4.jpg)
Garantir que determinada feature do sistema funcione como esperada.
Teste Unitário
![Page 5: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/5.jpg)
É um roteiro do próprio comportamento de um sistema.
![Page 6: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/6.jpg)
Garantia de que mudanças não quebrem funcionalidades já existentes.
![Page 7: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/7.jpg)
Ah, mas testar dá trabalho!
![Page 8: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/8.jpg)
Desculpe, não tenho tempo para criar testes.
![Page 9: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/9.jpg)
Eu tô cansado de tanto testar as coisas “na mão".
![Page 10: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/10.jpg)
Quando vc lança atualizações sem testes
![Page 11: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/11.jpg)
E coloca o produto em produção
E o sistema falha :(
![Page 12: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/12.jpg)
E você não acredita o que pode ter dado errado…
![Page 13: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/13.jpg)
Então, quais ferramentas que utilizo para testar?
![Page 14: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/14.jpg)
![Page 15: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/15.jpg)
Show! E como funciona testes em Android?
![Page 16: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/16.jpg)
Pastas para tipos de testes
Testes de UI
Testes Unitários
![Page 17: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/17.jpg)
Tá! Agora me apresenta essa tal de Espresso!
![Page 18: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/18.jpg)
Espresso
Parte da Android Support Testing Library
Simula interações com o usuário
Sincronização automática de ações de teste com a UI
Extremamente rápida!
![Page 19: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/19.jpg)
Configurando a Espresso
build.gradle (app)
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) // Android Testing Support Library's runner and rules androidTestCompile ‘com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test:rules:0.5' // Espresso UI Testing dependencies androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) … }
Dependências
![Page 20: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/20.jpg)
Configurando a Espresso
build.gradle (app)
android { compileSdkVersion 25 buildToolsVersion "24.0.0" defaultConfig { … testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } … }
Test Instrumentation Runner
![Page 21: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/21.jpg)
Anatomia de um Teste de UI
1 Encontrar uma View
2 Executar uma ação
3 Inspecionar o resultado
![Page 22: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/22.jpg)
Anatomia de um Teste de UI
onView(Matcher<View>)
2 Executar uma ação
3 Inspecionar o resultado
![Page 23: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/23.jpg)
Anatomia de um Teste de UI
onView(Matcher<View>)
.perform(ViewAction)
3 Inspecionar o resultado
![Page 24: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/24.jpg)
Anatomia de um Teste de UI
onView(Matcher<View>)
.perform(ViewAction)
.check(ViewAssertion)
![Page 25: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/25.jpg)
Demo - Tela de Login
![Page 26: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/26.jpg)
Criando um Teste de UICriando a classe de Teste@RunWith(AndroidJunit4.class) public class LoginActivityTest { }
![Page 27: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/27.jpg)
Criando um Teste de UIAdicionando uma ActivityTestRule@RunWith(AndroidJunit4.class) public class LoginActivityTest {
@Rule public ActivityTestRule<LoginActivity> activityTestRule = new ActivityTestRule<>(LoginActivity.class);
}
![Page 28: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/28.jpg)
Criando um Teste de UISimulando o preenchimento do campo usuário@RunWith(AndroidJunit4.class) public class MainActivityTest {
… @Test public void clickLoginButton_shouldVerifyCredentials(){ onView(withId(R.id.username_field)) .perform(typeText(“espresso”), closeSoftKeyboard()); }
}
![Page 29: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/29.jpg)
Criando um Teste de UI
@RunWith(AndroidJunit4.class) public class MainActivityTest {
… @Test public void clickLoginButton_shouldVerifyCredentials(){ … onView(withId(R.id.password_field)) .perform(typeText(“35pr3550”), closeSoftKeyboard()); }
}
Simulando o preenchimento do campo senha
![Page 30: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/30.jpg)
Criando um Teste de UI
@RunWith(AndroidJunit4.class) public class MainActivityTest {
… @Test public void clickLoginButton_shouldVerifyCredentials(){ … onView(withId(R.id.login_button)).perform(click()); }
}
Simulando o clique no botão
![Page 31: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/31.jpg)
Criando um Teste de UI
@RunWith(AndroidJunit4.class) public class MainActivityTest {
… @Test public void clickLoginButton_shouldVerifyCredentials(){ … onView(withId(R.id.username_field)).check(matches(hasText("espresso")); }
}
Verifica o conteúdo do campo usuário
![Page 32: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/32.jpg)
Criando um Teste de UI
@RunWith(AndroidJunit4.class) public class MainActivityTest {
… @Test public void clickLoginButton_shouldVerifyCredentials(){ … onView(withId(R.id.password_field)).check(matches(hasText("35pr3550")); }
}
Verifica o conteúdo do campo senha
![Page 33: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/33.jpg)
Status do testeVerificando se ele passou ou não
![Page 34: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/34.jpg)
Dúvidas em Espresso?Espresso Cheat Sheet
![Page 35: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/35.jpg)
Executando o TesteConfigurações - Desabilitar animações
![Page 36: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/36.jpg)
Executando o Teste
Executa todos os testes da classe
1
2
1 Executa o teste selecionado2
No Android Studio
![Page 37: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/37.jpg)
Legal! E agora, onde posso ler mais a respeito da Espresso?
![Page 38: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/38.jpg)
Saiba mais!
Testing Support Library GuideClique para saber mais
Android Testing CodelabClique para saber mais
Android Testing Patterns SeriesClique para saber mais
![Page 39: Automatize seus testes de UI com a Espresso!](https://reader034.vdocuments.site/reader034/viewer/2022051301/586f75bb1a28ab10258b615f/html5/thumbnails/39.jpg)
OBRIGADO!
goo.gl/VBJTIh
@gdgbrasilia
/gdgbrasilia