Realizar pruebas sobre nuestro código nos permiten comprobar su correcto funcionamiento e integración con otros módulos de nuestra aplicación, Android Studio simplifica el desarrollo de este tipo de pruebas con JUnit q viene instalado por defecto, aunque también permite extender funcionalidades utilizando otros frameworks como Mockito, Espresso y UI Automator.
Con Android Studio podrás ejecutar dos tipos de pruebas:
Cuando creamos un proyecto en Android Studio podemos observar que aparte de nuestro paquete donde se ubican nuestros Activity, se crean otros dos paquetes que tal vez te hayas preguntas ¿y para que sirven? pues bien esos paquetes corresponden a (1) Pruebas Instrumentas y (2) Pruebas de Unidad Local, cada uno con un archivo de prueba y sirven para almacenar las clases que sirven para realizar los dos tipos de pruebas con nuestro código.
En este post realizaremos un sencillo ejemplo de Pruebas de Unidad Local, para ello necesitamos tener Android Studio abierto y un proyecto creado, para este ejemplo nuestro proyecto se llama «AppFoo» (el nombre es lo de menos).
Lo primero que haremos sera crear una clase con el código a testear, creamos un nuevo paquete «foo» y dentro de ella una nueva clase llamada «MiClase.java«
import java.util.regex.Pattern; public class MiClase { /** * Dado un email valida su formato * * @param email Correo Electronico de la forma example@mail.com * @return boolean TRUE si el mail es valido FALSE en caso contrario * */ public static boolean mailValido(String email) { if(email!=null){ String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\."+ "[a-zA-Z0-9_+&*-]+)*@" + "(?:[a-zA-Z0-9-]+\\.)+[a-z" + "A-Z]{2,4}$"; Pattern pat = Pattern.compile(emailRegex); return pat.matcher(email).matches(); } return false; } /** * Dado tres numeros emnteros, determina el numero mayor * * @param a valor entero * @param b valor entero * @param c valor entero * @return int Numero mayor entre a, b y c * */ public static int numeroMayor(int a, int b, int c){ if (a > b && a > c) { return a; } else if (c > b) { return c; } else { return b; } } }
Para crear una clase de prueba, con la clase «MiClase» aún abierta, presiona CTRL+Shit+T y en el menú que aparece, presiona «Create New Test…»
en la ventana que aparece, solo presiona OK
Aparece otra ventana, presiona OK
Nuestro proyecto hasta el momento es el siguiente:
Podríamos crear el archivo de forma manual, pero el IDE te facilita ese trabajo entonces aprovecha.
MiClaseTest.java
En la recién clase creada MiClaseTest.java, escribiremos los métodos para probar nuestro código:
import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertTrue; public class MiClaseTest { /** * El e-mail que se prueba es valido por tanto el valor que se espera es TRUE * */ @Test public void mailValido() { assertThat(MiClase.mailValido("jcmouse.bo@gmail.com"), is(true) ); } /** * El e-mail que se prueba no es valido por tanto el valor esperado es FALSE * */ @Test public void mailNoValido() { assertThat(MiClase.mailValido("correo123[.]hotmail.com"), is(false) ); } /** * dado tres numeros (5,3,7) el valor esperado es 7 por tanto * el valor esperado y el calculado deben ser iguales * */ @Test public void numeroMayor_valorCorrecto() { int a = 5; int b = 3; int c = 7; int resultadoEsperado = 7; int resultadoCalculado = MiClase.numeroMayor(a, b, c); assertEquals(resultadoEsperado, resultadoCalculado); } /** * dado tres numeros (5,3,7) el valor esperado es 3 por tanto * el valor esperado y el calculado NO deben ser iguales * */ @Test public void numeroMayor_valorIncorrecto() { int a = 5; int b = 3; int c = 7; int resultadoEsperado = 3; int resultadoCalculado = MiClase.numeroMayor(a, b, c); assertTrue(resultadoEsperado != resultadoCalculado); } }
Ejecutar la prueba
Para ejecutar la prueba, podemos hacerlo individualmente o clase por clase, es decir, si hacemos clic derecho sobre el paquete de pruebas (tests) y seleccionamos Run, se ejecutaran las pruebas para todas las clases contenidas en ese paquete. Si deseamos ejecutar solo una clase, clic derecho sobre la clase en cuestión y seleccionar Run ‘nombre_de_la_clase’
Si tenemos todos nuestros métodos en color verde, quiere decir que la prueba se ejecuto con éxito, si tenemos algún error, este aparecerá en color rojo.
Métodos Assert
enjoy!!!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Agregar una imagen a un jpanel o a un jframe no es complicado pero para un programador novato puede convertirse en todo...
En este post haremos uso de PanoramaImageView para agregar a una aplicación android, una vista panorámica de 180° y 360°...
En este ejemplo tenemos un array en JSON el cual representa una lista de alumnos y queremos llevar este a una lista en j...
En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej...
ImageMagick es un software de código abierto multiplataforma que contiene una serie de herramientas para leer, mostrar,...
Antes de programar un videojuego, es necesario saber: Cómo representar figuras en la pantalla Cómo se manejan las coorde...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Google Bard la inteligencia artificial de Google se actualiza con una mejora que entra a competir con el resto de IAs y...