Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Espresso 101: Introdução a UI Testing

Espresso 101: Introdução a UI Testing

Introdução a testes de interface gráfica usando o Framework Espresso, da Google.

Pedro Salomão

January 25, 2016
Tweet

More Decks by Pedro Salomão

Other Decks in Technology

Transcript

  1. Objetivos 1. Onde entram as diversas ferramentas de teste; 2.

    O que são Testes de Interface do Usuário; 3. Como definir o que testar; 4. Como integrar o Espresso ao meu projeto; 5. Como escrever o meu primeiro teste de UI; 6. [BÔNUS] Demo.
  2. Ferramentas para Teste Robolectric API 16+ JVM Espresso API 8+

    Robotium Calabash Selendroid Instrumentation 
 API 1+ Android Platform Appium UIAutomator
 API 16+ UIAutomation
 API 18+
  3. Ferramentas para Teste Robolectric API 16+ JVM Espresso API 8+

    Robotium Calabash Selendroid Instrumentation 
 API 1+ Android Platform Appium UIAutomator
 API 16+ UIAutomation
 API 18+
  4. Testes de Interface 1. O que devo testar? 2. Qual

    o escopo de um teste (método)? 3. Posso testar fluxos completos? 4. E como funciona o estado da aplicação? 5. O que é um Mock e por que é importante?
  5. Integrando o Espresso 1. Adicionar no build.gradle, em dependencies: 2.

    Adicionar no build.gradle, em android.defaultConfig: compile 'com.android.support:support-annotations:23.1.1' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' androidTestCompile 'com.android.support.test:runner:0.4.1' testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" fonte: https://google.github.io/android-testing-support-library/docs/espresso/setup/index.html
  6. Espresso - Asserts onView( ViewMatcher ) .perform( ViewAction ) .check(

    ViewAssertion ) fonte: https://google.github.io/android-testing-support-library/docs/espresso/cheatsheet/index.html
  7. ViewMatcher Dois usos básicos: • Encontrar uma view (onView) •

    Verificar uma condição da View (matches) Exemplos: • withId( … ) • withText( … ) • isDisplayed()
  8. ViewAssertion Permite verificar uma determinada propriedade. Exemplos: • matches( Matcher

    ) • doesNotExists( … ) • typeText( … ) Observação: doesNotExists() != isNotDisplayed()
  9. Criando um teste Passos para criar um Teste usando Espresso:

    • Adicionar a anotação do JUnit na classe. • Adicionar uma Rule para a Activity a ser testada. • Criar os métodos de teste.
  10. Exemplo @RunWith(AndroidJUnit4.class) @LargeTest public class HelloWorldEspressoTest { @Rule public ActivityTestRule<MainActivity>

    mActivityRule = new ActivityTestRule<>(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!”)) .check(matches(isDisplayed())); } }
  11. Links Úteis Site da Google para Android Testing https://google.github.io/android-testing-support-library/ Código

    do Demo de Espresso https://github.com/ppgsalomao/espresso-examples GTAC 2014: Espresso, Spoon, Wiremock, Oh my! https://www.youtube.com/watch?v=-xQCNf_5NNM Droidcon NYC 2015 - Advanced Android Espresso https://www.youtube.com/watch?v=GlPn60-_txk