O documento apresenta as principais funcionalidades e benefícios do Espresso, uma ferramenta para testes de interface do usuário em Android. O Espresso permite simular interações com a UI de forma rápida e sincronizada, facilitando a automatização de testes. A anatomia básica de um teste com Espresso envolve encontrar uma view, executar uma ação e verificar o resultado.
18. 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!
26. Criando um Teste de UI
Criando a classe de Teste
@RunWith(AndroidJunit4.class)
public class LoginActivityTest { }
27. Criando um Teste de UI
Adicionando uma ActivityTestRule
@RunWith(AndroidJunit4.class)
public class LoginActivityTest {
@Rule
public ActivityTestRule<LoginActivity> activityTestRule =
new ActivityTestRule<>(LoginActivity.class);
}
28. Criando um Teste de UI
Simulando 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());
}
}
29. 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
30. 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
31. 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
32. 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
38. Saiba mais!
Testing Support Library Guide
Clique para saber mais
Android Testing Codelab
Clique para saber mais
Android Testing Patterns Series
Clique para saber mais