O documento fornece informações sobre automação de testes com Espresso, incluindo: 1) Uma introdução ao framework Espresso e por que usá-lo; 2) Desafios comuns na automação de testes e sugestões de padrões como Page Object; 3) Ferramentas e sintaxes do Espresso para criar testes.
11. @Test
public void clickAddNoteButton_opensAddNoteUi() throws Exception {
// Click on the add note button
onView(withId(R.id.fab_add_notes)).perform(click());
// Check if the add note screen is displayed
onView(withId(R.id.add_note_title)).check(matches(isDisplayed()));
}
https://goo.gl/JufQiR
12. @Test
public void clickAddNoteButton_opensAddNoteUi() throws Exception {
// Click on the add note button
onView(withId(R.id.fab_add_notes)).perform(click());
// Check if the add note screen is displayed
onView(withId(R.id.add_note_title)).check(matches(isDisplayed()));
}
https://goo.gl/JufQiR
23. Como acho as Activitys?
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
ou
adb logcat -s "ActivityManager"
24. Como o espresso acha os componentes?
id
ou
Texto
ou
CustomMatchers
Espresso.onView(ViewMatchers.withId(id))
Espresso.onView(ViewMatchers.withText())
onView(MyCustomMatcher)
26. Algumas dicas
● Execução manual
● Cuidado com os testes
● Cuidado com o estado do device
● Use qualificadores de testes nas suites (@SmallTest, @MediumTest,
@LargeTest )
● Cuidado com fluxos externos ( settings )
● Evite God Métodos
● Desabilite as animações no celular *
30. Teste 01
Título:
Tela Principal - inserir o nome completo com sucesso
Descrição:
O usuário deverá ser hábil para colocar o seu nome na tela, verificando o nome digitado no topo da tela
quando clicar no “botão mudar texto”
Passos para reproduzir:
1. Na tela principal, colocar o nome composto com 20 caracteres
2. Clicar no botão mudar texto
Resultado esperado:
1. O nome do usuario deverá ser mostrado no topo da tela principal
31. Teste 02
Título:
Tela Principal - Recebimento do nome do usuário com sucesso na segunda tela
Descrição:
O usuário deverá ser hábil de enviar o nome do mesmo com sucesso para a segunda tela
Passos para reproduzir:
1. Na tela principal, colocar o nome composto com 20 caracteres
2. Clicar no botão abrir Activity e mudar o texto
Resultado esperado:
1. O nome do usuario deverá ser recebido com sucesso na segunda tela
32. Teste 03
Título:
Tela Secundária - Ser possível habilitar e desabilitar a visibilidade na segunda tela
Descrição:
O usuário deverá ser hábil para habilitar e/ou desabilitar o texto recebido
Passos para reproduzir:
1. Na tela principal, colocar o nome composto com 20 caracteres
2. Clicar no botão Open activity and change text
3. Clicar no botão habilitar/desabilitar a visibilidade
Resultado esperado:
1. O texto recebido deve ficar invisível/visível para o usuário
41. Teste 04
Título:
Tela Principal - O último item da lista deve ficar totalmente visível
Descrição:
O usuário após um scroll completo, deve ser hábil de ver o último item da lista ( item: 99 )
Passos para reproduzir:
1. Entra na tela principal
2. Fazer um scroll completo
Resultado esperado:
1. O item item: 99 deve estar visível
42. Teste 05
Título:
Tela Principal - O último item da lista não deve ficar visível até usar uma rolagem
Descrição:
O usuário não deverá ver o último item da lista até rolar a barra de rolagem até o final da lista
Passos para reproduzir:
1. Entra na tela principal
Resultado esperado:
1. O item item: 99 não deve estar visível
43. Teste 06
Título:
Tela Principal - O item clicado na lista deve ser mostrado com sucesso no topo da tela
Descrição:
O usuário deve ser hábil de clicar em um item da lista recebendo o valor do item clicado na parte superior da
lista
Passos para reproduzir:
1. Entra na tela principal
2. Clicar em um item da lista
Resultado esperado:
1. O item selecionado deve ser mostrado com sucesso na parte superior da lista
44. Teste 07
Título:
Tela Principal - Ser possível mudar o estado do checkbox sem mostrar o item clicado na parte superior
Descrição:
O usuário deve ser hábil para clicar no checkbox sem exibir o item clicado na parte superior da lista
Passos para reproduzir:
1. Entra na tela principal
2. Clicar em um checkbox de um item aleatório
Resultado esperado:
1. Não deve ser exibido o item clicado na parte superior da lista
48. 1. Achar um elemento na lista e clicar
onView(ViewMatchers.withId())
.perform(
actionOnItem(hasDescendant(withText("txt”))
, ViewActions.click()));
2. Vai até uma posição especifica da lista
onView(withId())
.perform(scrollTo(hasDescendant(withText(containsString("txt”)))))
.check(ViewAssertions.matches(isDisplayed()));
50. Teste 09
Título:
Tela Principal - O usuário deverá ver com sucesso o item 30 da lista
Descrição:
O usuário deverá fazer um scroll até encontrar o item 30 na lista
Passos para reproduzir:
1. Entra na tela principal
2. Fazer um scroll até a encontrar o item 30
Resultado esperado:
1. O item item 30 deve estar visível na tela
51. Teste 10
Título:
Tela Principal - Fazer um scroll completo e não achar um item inválido
Descrição:
O usuário deve fazer um scroll até o final da lista. O item Lopes não deve ser encontrado na lista
Passos para reproduzir:
1. Entra na tela principal
2. Fazer um scroll até o final da lista
Resultado esperado:
1. O item lopes não deve ser encontrado
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Pedir para rodarem o projeto para verem o projeto sendo rodado
Fazer na prática
Fazer na prática
Faça o teste manual para ir anotando os passos ( Comentar )
Tente fazer testes independentes
Os testes de UI/Sistemas são frágeis ( flaky )
Os fluxos externos são quando o app usa alguma dependência externa, tais como entra na tela de settings.
Comentar que as animações devem ser desabilitadas devido a ser requisito do espresso
Faça o teste manual para ir anotando os passos ( Comentar )
Tente fazer testes independentes
Os testes de UI/Sistemas são frágeis ( flaky )
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Importar o projeto no AndroidStudio
Mostrar rapidamente como configurar o espresso e dizer que tem um link oficial no qual fala sobre estes passos
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Pedir para rodarem o projeto so para verem o projeto sendo rodado
Pedir para rodarem o projeto so para verem o projeto sendo rodado