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.

Avatar for Pedro Salomão

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