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

Android UI Testing using Robolectric

Android UI Testing using Robolectric

Talk for the Android Dev Perú community meetup.

More Decks by Jose Flavio Quispe Irrazábal

Other Decks in Programming

Transcript

  1. Unit Testing en Android Local Unit Tests × Java/Kotlin puro

    × Corren en la máquina virtual de Java (no se necesita dispositivo, emulador) × Son rápidos Instrumented Unit Test × Elementos de UI, componentes de Android, tests de integración × Se necesita un dispositivo o emulador × ¡Lentos!
  2. ¿Por qué hacer testing de UI? × Permite tener integración

    de diferentes piezas de código: Logic + UI × Garantiza que el producto se comporte como se espera
  3. “ Running tests on an Android emulator or device is

    slow! Building, deploying, and launching the app often takes a minute or more. That’s no way to do TDD. There must be a better way.
  4. Robolectric × Test unitarios a componentes de Android que corren

    como “Local Unit Tests” × No se necesita usar un dispositivo o emulador × Puede combinarse con Mockito y Espresso ➔ Algunas limitaciones como testing a Android Keystore, algunos componentes de UI, etc
  5. Shadows × Clases que modifican o extienden las clases del

    SDK de Android × Gracias a estas clases se evita la necesidad de usar un dispositivo o emulador
  6. Tests básicos: ViewPagers y Fragments Scheduler.IdleState.UNPAUSED Schedulers “Class that manages

    a queue of Runnables that are scheduled to run now (or at some time in the future). Runnables that are scheduled to run on the UI thread (tasks, animations, etc) eventually get routed to a Scheduler instance.” PAUSED = no se correrán eventos de UI hasta que se indique lo contrario
  7. Useful Links × Proyecto de ejemplo en Github × Unit

    Testing on the JVM - Vogella × Unit Testing with Robolectric - CodePath × Robolectric Testing with AndroidJunitRunner - Iñaki Villar × Robolectric Site