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

Android Testing - Mi camino hacia la iluminación

Android Testing - Mi camino hacia la iluminación

Slides de mi plática sobre Android Testing para la comunidad Androidtitlán de Ciudad de México.

Mira el video: https://www.facebook.com/Centraal/videos/1247024255402580/

El repositorio de ejemplo:
https://github.com/DevPicon/android-test-app-sample

Armando Picón

September 11, 2017
Tweet

More Decks by Armando Picón

Other Decks in Programming

Transcript

  1. • ¿Qué es una ‘unidad’ en Android? • ¿Cómo separarlo

    del framework? • Local vs. On-Device Android es diferente
  2. JVM Device Non-UI Unit Testing Instrumentation Unit Test UI Instrumentation

    UI Test /test /androidTest Local vs. On-Device Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  3. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) Instrumentation

    Unit Test UI Instrumentation UI Test /test /androidTest Local vs. On-Device Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  4. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) Instrumentation

    Unit Test (Logica con contexto) UI Instrumentation UI Test /test /androidTest Local vs. On-Device Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  5. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) Instrumentation

    Unit Test (Logica con contexto) UI Instrumentation UI Test (Simulación de eventos de usuario) /test /androidTest Local vs. On-Device Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  6. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) Instrumentation

    Unit Test (Logica con contexto) UI ? Instrumentation UI Test (Simulación de eventos de usuario) /test /androidTest Local vs. On-Device Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  7. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) JUnit

    Instrumentation Unit Test (Logica con contexto) UI ? Instrumentation UI Test (Simulación de eventos de usuario) /test /androidTest Local vs. On-Device - Bibliotecas Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  8. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) JUnit

    Instrumentation Unit Test (Logica con contexto) Espresso UI ? Instrumentation UI Test (Simulación de eventos de usuario) /test /androidTest Local vs. On-Device - Bibliotecas Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  9. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) JUnit

    Instrumentation Unit Test (Logica con contexto) Espresso UI ? Instrumentation UI Test (Simulación de eventos de usuario) Espresso (para una app) UI Automator (interacción entre apps) /test /androidTest Local vs. On-Device - Bibliotecas Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  10. JVM Device Non-UI Unit Testing (Rápido - Lógica Pura) JUnit

    Instrumentation Unit Test (Logica con contexto) Espresso UI ? Roboelectric Instrumentation UI Test (Simulación de eventos de usuario) Espresso (para una app) UI Automator (interacción entre apps) /test /androidTest Local vs. On-Device - Bibliotecas Fuente: https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/
  11. Notas • Al agregar la dependencia de Android Espresso no

    olvides excluir la referencia a Support Annotations • Para probar aquellas funciones que requieran de un Contexto, Espresso nos provee la función getTargetContext() en la clase InstrumentationRegistry. • Si no cuentas con tiempo, procura escribir pruebas unitarias sobre tu lógica de la aplicación (Presenters, etc). • Hacer tests es mejor que no tener ningún test. • Para armar tests que requieran una implementación particular del Application Object será necesario también crear una implementación particular del AndroidJUnitRunner. • La receta para los Instrumentation UI Tests: onView(ViewMatcher) .perform(ViewAction) .check(ViewAssertion)
  12. Android Testing Codelab https://codelabs.developers.google.com/codelabs/android-testing/index.html Effective Android Testing for Mobile Developers

    https://www.linkedin.com/learning/effective-android-testing-for-mobile-developers/ Espresso cheat sheet https://developer.android.com/training/testing/espresso/cheat-sheet.html Probando Android Espresso https://medium.com/@devpicon/probando-android-espresso-6beb536427b2 Android Espresso - Testeando el Popup Menu https://medium.com/@devpicon/android-espresso-testeando-el-popup-menu-8b5b21218ad1 Android Espresso https://speakerdeck.com/devpicon/android-espresso Recursos