android_test_unitarios

¿Cómo hacer TDD en Android? Parte 1 – Resumen y configuración

Como ya comentamos en el anterior artículo “Desarrollo orientado a pruebas – TDD” los test unitarios son sumamente importantes para la calidad del desarrollo, y TDD nos obliga a escribir estos tests antes de empezar con el código propiamente dicho. En este artículo veremos como configurar nuestro proyecto Android para usar TDD.

Tipos de tests

Testing pyramid

Pirámide de testing

Test Unitarios

Los test unitarios ocupan la base de la pirámide, hacen que nuestra aplicación sea sólida y son fáciles de escribir

Test de Integración

Los test de integración ocupan el segundo escalón de la pirámide y aseguran la interoperabilidad de los diferentes módulos de la aplicación.

Test de UI

Los test UI se encargan de verificar que la aplicación visualmente se comporta como esperamos, los mensajes que se muestran son los apropiados, etc…

Tipos de tests en Android

Hay diversos frameworks y herramientas para realizar tests en Android, unos son proporcionados por Google y otros son herramientas de terceros.

En Android tenemos dos tipos de test diferentes:

Test Unitarios

Los test unitarios normalmente se ocupan de probar pequeñas funcionalidades (métodos, clases, procesos…) para ello tenemos principalmente dos herramientas

  • JUnit: Es un framework simple para escribir pequeñas pruebas repetitivas.
  • Robolectric: Es un framework muy popular para Android ya que permite escribir test unitarios y ejecutarlos sobre la JVM sin necesidad de emulador o dispositivo físico.

Test de Instrumentación o UI

Los test de instrumentación o UI son tests donde el usuario simula la interacción con la interfaz, como pulsar un botón, escribir en un EditText, etc… 

Estos tipos de tests necesitan de un emulador o un dispositivo físico.

Algunas de las herramientas que podemos usar para realizar estos tipos de tests son:

  • Espresso: Es un framework para test UI desarrollado por Google.
  • Robotium: Es un framework de tereceros para tests UI. Puedes leer más sobre esto en el siguiente enlace.

Estructura de Packages para tests

En todo proyecto tenemos dos packages diferenciados para los test:

  • Test: En esta carpeta se encuentran los tests unitarios, que como ya dijimos anteriormente sólo necesitan la JVM. No tienen accesos a componentes específicos de Android como el contexto.
  • androidTest: Aquí se encuentran los tests de instrumentación, que si tienen acceso a componentes específicos de Android y necesitan un emulador o dispositivo físico para ejecutarse.

Estructura_proyecto

 

Estructura del proyecto

Para el proyecto vamos usar un patrón de diseño MVP (puedes leer más sobre patrones de diseño en el artículo “Patrones de diseño. Esos grandes desconocidos“)

Crearemos un proyecto nuevo basándonos en las plantillas estándar que proporciona Android Studio creando una con actividad en blanco, cuyo nombre interno será com.jamontes79.tdd_ejemplo, incluyendo una única Activity llamada LoginActivity.

Con esto ya tenemos el proyecto creado y listo para empezar a realizar los test la tercera parte de esta serie de artículos sobre TDD en Android.

Puedes descargar el proyecto en este punto desde el siguiente enlace de github: https://github.com/jamontes79/TDD_Ejemplo/tree/c64f7df9ca81b7da1876cbf7011b74c7731a9fd1

Espero que te sirva de ayuda.

Publicado en Android, Desarrollo y etiquetado , , , , , .

Ingeniero Técnico en Informática de Sistemas. Apasionado de la tecnología y enfocado al desarrollo móvil

Un comentario

  1. Pingback: ¿Cómo hacer TDD en Android? Parte 4 – Espresso & Tests de UI – Alberto Montes de Oca

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.