SlideShare una empresa de Scribd logo
1 de 9
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
Abrir NetBeans
Crear proyecto java: PruebasUnitarias
Crear paquete : llamado utilidades
Adicionar una clase java al paquete utilidades que se llame Validar
package utilidades;
/**
* @author Ing. Emerson Garay Gómez
* @asignatura Ingeniería de Software III
* @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos)
* @tema Validación de GUI
* @since 2016
*/
public final class Validar {
public static boolean esCampoVacio(String campo){
return (campo.isEmpty());
}
public static boolean esNumeroEntero(String campo){
try{
Long.parseLong(campo);
return true;
}catch( Exception e){
return false;
}
}
public static boolean esNumeroReal(String campo){
try{
Double.parseDouble(campo);
return true;
}catch( Exception e){
return false;
}
}
public static boolean estaEnRango(String campo, double inf, double sup){
try{
double valor = Double.parseDouble(campo);
if( valor >= inf && valor <= sup ){
return true;
}
}catch( Exception e){
}
return false;
}
}//Fin de la clase Validar
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
Adicionar una clase java al paquete utilidades que se llame Util
package utilidades;
import java.awt.Component;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
/**
* @author Ing. Emerson Garay Gómez
* @asignatura Ingeniería de Software III
* @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos)
* @tema Funciones de Utilidad
* @since 2016
*/
public final class Util {
public static String PATRON_FECHA_MYSQL = "YYYY-MM-dd";
public static String PATRON_HORA_MYSQL = "HH:mm:ss";
public static String aFechaMySQL(Date date){
String fecha;
SimpleDateFormat sdf = new SimpleDateFormat(PATRON_FECHA_MYSQL);
fecha = sdf.format(date);
return fecha;
}
public static String aHoraMySQL(Date date){
String hora;
SimpleDateFormat sdf = new SimpleDateFormat(PATRON_HORA_MYSQL);
hora = sdf.format(date);
return hora;
}
public static String aFechaYHoraMySQL(Date date){
String fechayhora;
SimpleDateFormat sdf = new SimpleDateFormat(PATRON_FECHA_MYSQL);
SimpleDateFormat sdf2 = new SimpleDateFormat(PATRON_HORA_MYSQL);
fechayhora = sdf.format(date) + " " + sdf2.format(date);
return fechayhora;
}
public static String aFormatoPesos(double valor){
DecimalFormat formateador = new DecimalFormat();
String res = "$ " + formateador.format(valor);
return res;
}
public static String aFormatoID(double valor){
DecimalFormat formateador = new DecimalFormat();
String res = formateador.format(valor);
return res;
}
}//Fin de la Clase Util
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
Hacer pruebas unitarias con JUnit en NetBeans
1. Clic derecho sobre la Clase que se
desea hacer la prueba(test)
2. Seleccionar Crear o Actualizar Prueba
3. Clic en OK
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
package utilidades;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author Ing. Emerson Garay Gómez
* @asignatura Ingenieria de Software III
* @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos)
* @tema Validación de GUI
* @since 2016
*/
public class ValidarTest {
public ValidarTest() {
}
@Test
public void testEsCampoVacio() {
String campo = "-";
boolean expResult = true;
boolean result = Validar.esCampoVacio(campo);
String m = "esCampoVacio(" + campo + ") := " + result;
assertEquals(m,expResult, result);
System.out.println("esCampoVacio(" + campo + ") := " + result + " --> OK");
}
@Test
public void testEsNumeroEntero() {
String campo = "500";
boolean expResult = true;
boolean result = Validar.esNumeroEntero(campo);
String m = "esNumeroEntero(" + campo + ") := " + result;
assertEquals(m,expResult,result);
System.out.println(m + result + " --> OK");
}
@Test
public void testEsNumeroReal() {
String campo = "3.141618";
boolean expResult = true;
boolean result = Validar.esNumeroReal(campo);
String m = "esNumeroReal(" + campo + ") := " + result;
assertEquals(m,expResult, result);
System.out.println(m + result + " --> OK");
}
@Test
public void testEstaEnRango() {
String campo = "3.75";
double inf = 0.0;
double sup = 5.0;
boolean expResult = true;
boolean result = Validar.estaEnRango(campo, inf, sup);
String m = "estaEnRango(" + campo + ") := " + result;
assertEquals(m, expResult, result);
System.out.println(m + result + " --> OK");
}
}//Fin de la clase ValidarTest
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
Clic derecho sobre el archivo de prueba y ejecutar archivo para ver el resultado de la prueba
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
package utilidades;
import java.util.Calendar;
import java.util.Date;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author Ing. Emerson Garay Gómez
* @asignatura Ingenieria de Software III
* @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos)
* @tema Utilidades de GUI
* @since 2016
*/
public class UtilTest {
Date fechayhora;
String strfecha, strhora, strfechayhora;
public UtilTest() {
Calendar c = Calendar.getInstance();
//año, mes-1, día del mes, horas, minutos, segundos
c.set(2016, 8-1, 6, 18, 30, 58);
fechayhora = c.getTime();
strfecha = "2016-08-06";
strhora = "18:30:58";
strfechayhora = strfecha + " " + strhora;
}
@Test
public void testAFechaMySQL() {
Date date = fechayhora;
String expResult = strfecha;
String result = Util.aFechaMySQL(date);
String m = "aFechaMySQL(" + date + ") := " + result;
assertEquals(m, expResult, result);
System.out.println(m + " --> OK");
}
@Test
public void testAHoraMySQL() {
Date date = fechayhora;
String expResult = strhora;
String result = Util.aHoraMySQL(date);
String m = "aHoraMySQL(" + date + ") := " + result;
assertEquals(m, expResult, result);
System.out.println(m + " --> OK");
}
@Test
public void testAFechaYHoraMySQL() {
Date date = fechayhora;
String expResult = strfechayhora;
String result = Util.aFechaYHoraMySQL(date);
String m = "aFechaYHoraMySQL(" + date + ") := " + result;
assertEquals(m, expResult, result);
System.out.println(m + " --> OK");
}
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
@Test
public void testFormatoPesos() {
double valor = 1500800;
String expResult = "$ 1.500.800";
String result = Util.aFormatoPesos(valor);
String m = "formatoPesos(" + valor + ") := " + result;
assertEquals(m, expResult,result);
System.out.println(m + " --> OK");
}
@Test
public void testFormatoID() {
double valor = 92456852;
String expResult = "92.456.852";
String result = Util.aFormatoID(valor);
String m = "formatoID(" + valor + ") := " + result;
assertEquals(m, expResult, result);
System.out.println(m + " --> OK");
}
}//Fin de la clase UtilTest
Clic derecho sobre el archivo de prueba y ejecutar archivo para ver el resultado de la prueba
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
Test Parametrizado
package utilidades;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
/**
* @author Ing. Emerson Garay Gómez
* @asignatura Ingeniería de Software III
* @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos)
* @tema Validación de GUI
* @since 2016
*/
@RunWith(Parameterized.class)
public class ValidarEsNumeroEnteroTestParametrizado {
private final String datoEntrada;
private final boolean datoEsperado;
@Parameterized.Parameters
public static List<Object[]> getDatos(){
return Arrays.asList( new Object[][] {
{"0", true},
{"1234567890", true},
{"-1", true},
{"-1234567890", true},
{"+1234567890", true},
{"-0", true},
{"+0", true},
{"350", true},
{"Hola", false},
{"3.141618", false},
{"3,141618", false},
{"3.14E3", false} }
);
}
public ValidarEsNumeroEnteroTestParametrizado(String entrada, boolean esperado){
this.datoEntrada = entrada;
this.datoEsperado = esperado;
}
@Test
public void testParametersEsNumeroEntero() {
String campo = datoEntrada;
boolean expResult = datoEsperado;
boolean result = Validar.esNumeroEntero(campo);
String m = "esNumeroEntero(" + campo + ") := " + result;
assertEquals(m,expResult,result);
System.out.println(m + result + " --> OK");
}
}//Fin de la clase ValidarEsUnNumeroEnterotestParametrizado
Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans
www.youtube.com/emergaray www.slideshare.net/emergar
Test de Suite
Se escogen algunas o todas las pruebas unitarias para ejecutar de una vez
package utilidades;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
/**
* @author Ing. Emerson Garay Gómez
* @asignatura ingeniería de Software III
* @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos)
* @tema Validación de GUI
* @since 2016
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({
utilidades.UtilTest.class,
utilidades.ValidarTest.class,
utilidades.ValidarEsNumeroEnteroTestParametrizado.class
})
public class TestSuite {
}

Más contenido relacionado

La actualidad más candente

SUBNETEO clase b y c, Vlan, dhcp extendido y topología funcional
SUBNETEO clase b  y c, Vlan, dhcp extendido y topología funcionalSUBNETEO clase b  y c, Vlan, dhcp extendido y topología funcional
SUBNETEO clase b y c, Vlan, dhcp extendido y topología funcionalMario Hernandez Burgos
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la pooBoris Salleg
 
Comandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoCISCO NETWORKING
 
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerTodos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerjlzo
 
02 examen diagnóstico bd
02 examen diagnóstico bd02 examen diagnóstico bd
02 examen diagnóstico bdJosé Mendoza
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaDaniel Gómez
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasJuanMiguelCustodioMo
 
Diseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando NetbeansDiseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando NetbeansEmerson Garay
 
Configuracion servidor web, dns, ftp, pop3 y smtp txt para linux
Configuracion servidor web, dns, ftp, pop3 y smtp txt para linuxConfiguracion servidor web, dns, ftp, pop3 y smtp txt para linux
Configuracion servidor web, dns, ftp, pop3 y smtp txt para linuxMohamed Diop
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 

La actualidad más candente (20)

Configuración básica del router
Configuración básica del routerConfiguración básica del router
Configuración básica del router
 
SUBNETEO clase b y c, Vlan, dhcp extendido y topología funcional
SUBNETEO clase b  y c, Vlan, dhcp extendido y topología funcionalSUBNETEO clase b  y c, Vlan, dhcp extendido y topología funcional
SUBNETEO clase b y c, Vlan, dhcp extendido y topología funcional
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Calculadora con operaciones básicas en java
Calculadora con operaciones básicas en javaCalculadora con operaciones básicas en java
Calculadora con operaciones básicas en java
 
direcciones ip no validas
direcciones ip no validasdirecciones ip no validas
direcciones ip no validas
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la poo
 
Comandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos cisco
 
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerTodos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
 
DIRECCIONAMIENTO IP: IPv4 y IPv6
DIRECCIONAMIENTO  IP: IPv4 y IPv6DIRECCIONAMIENTO  IP: IPv4 y IPv6
DIRECCIONAMIENTO IP: IPv4 y IPv6
 
Patrones GRASP de tipo de bajo acoplamiento
Patrones GRASP de  tipo de bajo acoplamientoPatrones GRASP de  tipo de bajo acoplamiento
Patrones GRASP de tipo de bajo acoplamiento
 
Configuración básica de la vlan
Configuración básica de la vlanConfiguración básica de la vlan
Configuración básica de la vlan
 
02 examen diagnóstico bd
02 examen diagnóstico bd02 examen diagnóstico bd
02 examen diagnóstico bd
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y Desventajas
 
Diseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando NetbeansDiseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando Netbeans
 
Configuracion servidor web, dns, ftp, pop3 y smtp txt para linux
Configuracion servidor web, dns, ftp, pop3 y smtp txt para linuxConfiguracion servidor web, dns, ftp, pop3 y smtp txt para linux
Configuracion servidor web, dns, ftp, pop3 y smtp txt para linux
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 

Similar a Taller: Prueba Unitaria con JUnit en NetBeans

Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013dayaorte
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUGJordi Gerona
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytestHector Canto
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..siticfje
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmockkaolong
 
Ingenieria de sw Junit
Ingenieria de sw JunitIngenieria de sw Junit
Ingenieria de sw Junitpattyand89
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gioRobert Wolf
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcialmtemarialuisa
 
Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Emerson Garay
 
Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - TrovitJordi Gerona
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009Pepe
 
_5 - Prácticas 3 - Constructor. El método mágico..pdf
_5 - Prácticas 3 - Constructor. El método mágico..pdf_5 - Prácticas 3 - Constructor. El método mágico..pdf
_5 - Prácticas 3 - Constructor. El método mágico..pdfLaura Ofelia Morales Pérez
 
Primera App - Laboratorio Android
Primera App - Laboratorio AndroidPrimera App - Laboratorio Android
Primera App - Laboratorio AndroidGDG Cali
 
Portafolio poo segundo parcial sergio muñiz
Portafolio poo segundo parcial sergio muñizPortafolio poo segundo parcial sergio muñiz
Portafolio poo segundo parcial sergio muñizSergio Muñiz
 
Segundo laboratorio de Android
Segundo laboratorio de AndroidSegundo laboratorio de Android
Segundo laboratorio de AndroidGDG Cali
 

Similar a Taller: Prueba Unitaria con JUnit en NetBeans (20)

Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUG
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmock
 
Ingenieria de sw Junit
Ingenieria de sw JunitIngenieria de sw Junit
Ingenieria de sw Junit
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gio
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcial
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Guia4 java
Guia4 javaGuia4 java
Guia4 java
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Programación III (Java) - 09 Cierre
Programación III (Java) - 09 CierreProgramación III (Java) - 09 Cierre
Programación III (Java) - 09 Cierre
 
Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01
 
Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - Trovit
 
Testeo unitario
Testeo unitarioTesteo unitario
Testeo unitario
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
 
_5 - Prácticas 3 - Constructor. El método mágico..pdf
_5 - Prácticas 3 - Constructor. El método mágico..pdf_5 - Prácticas 3 - Constructor. El método mágico..pdf
_5 - Prácticas 3 - Constructor. El método mágico..pdf
 
Primera App - Laboratorio Android
Primera App - Laboratorio AndroidPrimera App - Laboratorio Android
Primera App - Laboratorio Android
 
Portafolio poo segundo parcial sergio muñiz
Portafolio poo segundo parcial sergio muñizPortafolio poo segundo parcial sergio muñiz
Portafolio poo segundo parcial sergio muñiz
 
Segundo laboratorio de Android
Segundo laboratorio de AndroidSegundo laboratorio de Android
Segundo laboratorio de Android
 

Más de Emerson Garay

Distancia menor x y en rectángulo
Distancia menor x y en rectánguloDistancia menor x y en rectángulo
Distancia menor x y en rectánguloEmerson Garay
 
Scratch 3 - Juego atrapar manzanas
Scratch 3 - Juego atrapar manzanasScratch 3 - Juego atrapar manzanas
Scratch 3 - Juego atrapar manzanasEmerson Garay
 
Menus de microsoft word 2016
Menus de microsoft word 2016Menus de microsoft word 2016
Menus de microsoft word 2016Emerson Garay
 
Menús de microsoft word 2013 plus
Menús de microsoft word 2013 plusMenús de microsoft word 2013 plus
Menús de microsoft word 2013 plusEmerson Garay
 
Menús de microsoft word 2010
Menús de microsoft word 2010Menús de microsoft word 2010
Menús de microsoft word 2010Emerson Garay
 
Sitio web (boostrap 4 carrusel de imagenes)
Sitio web (boostrap 4 carrusel de imagenes)Sitio web (boostrap 4 carrusel de imagenes)
Sitio web (boostrap 4 carrusel de imagenes)Emerson Garay
 
Sitio web (bootstrap4)
Sitio web (bootstrap4)Sitio web (bootstrap4)
Sitio web (bootstrap4)Emerson Garay
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlEmerson Garay
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: ListaEmerson Garay
 
Controles Básicos de Interfaz en Android
Controles Básicos de Interfaz en AndroidControles Básicos de Interfaz en Android
Controles Básicos de Interfaz en AndroidEmerson Garay
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : ColaEmerson Garay
 
Esquema de Bases de Datos
Esquema de Bases de DatosEsquema de Bases de Datos
Esquema de Bases de DatosEmerson Garay
 
Calculadora Básica en Android
Calculadora Básica en AndroidCalculadora Básica en Android
Calculadora Básica en AndroidEmerson Garay
 
Estructura de Datos: Pila
Estructura de Datos: PilaEstructura de Datos: Pila
Estructura de Datos: PilaEmerson Garay
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a AndroidEmerson Garay
 
BD - Diseño Conceptual, Lógico y Físico
BD - Diseño Conceptual, Lógico y FísicoBD - Diseño Conceptual, Lógico y Físico
BD - Diseño Conceptual, Lógico y FísicoEmerson Garay
 

Más de Emerson Garay (20)

Distancia menor x y en rectángulo
Distancia menor x y en rectánguloDistancia menor x y en rectángulo
Distancia menor x y en rectángulo
 
Mind meister
Mind meisterMind meister
Mind meister
 
Scratch 3 - Juego atrapar manzanas
Scratch 3 - Juego atrapar manzanasScratch 3 - Juego atrapar manzanas
Scratch 3 - Juego atrapar manzanas
 
Menus de microsoft word 2016
Menus de microsoft word 2016Menus de microsoft word 2016
Menus de microsoft word 2016
 
Menús de microsoft word 2013 plus
Menús de microsoft word 2013 plusMenús de microsoft word 2013 plus
Menús de microsoft word 2013 plus
 
Menús de microsoft word 2010
Menús de microsoft word 2010Menús de microsoft word 2010
Menús de microsoft word 2010
 
Sitio web (boostrap 4 carrusel de imagenes)
Sitio web (boostrap 4 carrusel de imagenes)Sitio web (boostrap 4 carrusel de imagenes)
Sitio web (boostrap 4 carrusel de imagenes)
 
Sitio web (bootstrap4)
Sitio web (bootstrap4)Sitio web (bootstrap4)
Sitio web (bootstrap4)
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD Mysql
 
Intent en android
Intent en androidIntent en android
Intent en android
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: Lista
 
Controles Básicos de Interfaz en Android
Controles Básicos de Interfaz en AndroidControles Básicos de Interfaz en Android
Controles Básicos de Interfaz en Android
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : Cola
 
Esquema de Bases de Datos
Esquema de Bases de DatosEsquema de Bases de Datos
Esquema de Bases de Datos
 
Calculadora Básica en Android
Calculadora Básica en AndroidCalculadora Básica en Android
Calculadora Básica en Android
 
Estructura de Datos: Pila
Estructura de Datos: PilaEstructura de Datos: Pila
Estructura de Datos: Pila
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Búsqueda lineal
Búsqueda linealBúsqueda lineal
Búsqueda lineal
 
Búsqueda Binaria
Búsqueda BinariaBúsqueda Binaria
Búsqueda Binaria
 
BD - Diseño Conceptual, Lógico y Físico
BD - Diseño Conceptual, Lógico y FísicoBD - Diseño Conceptual, Lógico y Físico
BD - Diseño Conceptual, Lógico y Físico
 

Último

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Taller: Prueba Unitaria con JUnit en NetBeans

  • 1. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar Abrir NetBeans Crear proyecto java: PruebasUnitarias Crear paquete : llamado utilidades Adicionar una clase java al paquete utilidades que se llame Validar package utilidades; /** * @author Ing. Emerson Garay Gómez * @asignatura Ingeniería de Software III * @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos) * @tema Validación de GUI * @since 2016 */ public final class Validar { public static boolean esCampoVacio(String campo){ return (campo.isEmpty()); } public static boolean esNumeroEntero(String campo){ try{ Long.parseLong(campo); return true; }catch( Exception e){ return false; } } public static boolean esNumeroReal(String campo){ try{ Double.parseDouble(campo); return true; }catch( Exception e){ return false; } } public static boolean estaEnRango(String campo, double inf, double sup){ try{ double valor = Double.parseDouble(campo); if( valor >= inf && valor <= sup ){ return true; } }catch( Exception e){ } return false; } }//Fin de la clase Validar
  • 2. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar Adicionar una clase java al paquete utilidades que se llame Util package utilidades; import java.awt.Component; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JOptionPane; /** * @author Ing. Emerson Garay Gómez * @asignatura Ingeniería de Software III * @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos) * @tema Funciones de Utilidad * @since 2016 */ public final class Util { public static String PATRON_FECHA_MYSQL = "YYYY-MM-dd"; public static String PATRON_HORA_MYSQL = "HH:mm:ss"; public static String aFechaMySQL(Date date){ String fecha; SimpleDateFormat sdf = new SimpleDateFormat(PATRON_FECHA_MYSQL); fecha = sdf.format(date); return fecha; } public static String aHoraMySQL(Date date){ String hora; SimpleDateFormat sdf = new SimpleDateFormat(PATRON_HORA_MYSQL); hora = sdf.format(date); return hora; } public static String aFechaYHoraMySQL(Date date){ String fechayhora; SimpleDateFormat sdf = new SimpleDateFormat(PATRON_FECHA_MYSQL); SimpleDateFormat sdf2 = new SimpleDateFormat(PATRON_HORA_MYSQL); fechayhora = sdf.format(date) + " " + sdf2.format(date); return fechayhora; } public static String aFormatoPesos(double valor){ DecimalFormat formateador = new DecimalFormat(); String res = "$ " + formateador.format(valor); return res; } public static String aFormatoID(double valor){ DecimalFormat formateador = new DecimalFormat(); String res = formateador.format(valor); return res; } }//Fin de la Clase Util
  • 3. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar Hacer pruebas unitarias con JUnit en NetBeans 1. Clic derecho sobre la Clase que se desea hacer la prueba(test) 2. Seleccionar Crear o Actualizar Prueba 3. Clic en OK
  • 4. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar package utilidades; import org.junit.Test; import static org.junit.Assert.*; /** * @author Ing. Emerson Garay Gómez * @asignatura Ingenieria de Software III * @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos) * @tema Validación de GUI * @since 2016 */ public class ValidarTest { public ValidarTest() { } @Test public void testEsCampoVacio() { String campo = "-"; boolean expResult = true; boolean result = Validar.esCampoVacio(campo); String m = "esCampoVacio(" + campo + ") := " + result; assertEquals(m,expResult, result); System.out.println("esCampoVacio(" + campo + ") := " + result + " --> OK"); } @Test public void testEsNumeroEntero() { String campo = "500"; boolean expResult = true; boolean result = Validar.esNumeroEntero(campo); String m = "esNumeroEntero(" + campo + ") := " + result; assertEquals(m,expResult,result); System.out.println(m + result + " --> OK"); } @Test public void testEsNumeroReal() { String campo = "3.141618"; boolean expResult = true; boolean result = Validar.esNumeroReal(campo); String m = "esNumeroReal(" + campo + ") := " + result; assertEquals(m,expResult, result); System.out.println(m + result + " --> OK"); } @Test public void testEstaEnRango() { String campo = "3.75"; double inf = 0.0; double sup = 5.0; boolean expResult = true; boolean result = Validar.estaEnRango(campo, inf, sup); String m = "estaEnRango(" + campo + ") := " + result; assertEquals(m, expResult, result); System.out.println(m + result + " --> OK"); } }//Fin de la clase ValidarTest
  • 5. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar Clic derecho sobre el archivo de prueba y ejecutar archivo para ver el resultado de la prueba
  • 6. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar package utilidades; import java.util.Calendar; import java.util.Date; import org.junit.Test; import static org.junit.Assert.*; /** * @author Ing. Emerson Garay Gómez * @asignatura Ingenieria de Software III * @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos) * @tema Utilidades de GUI * @since 2016 */ public class UtilTest { Date fechayhora; String strfecha, strhora, strfechayhora; public UtilTest() { Calendar c = Calendar.getInstance(); //año, mes-1, día del mes, horas, minutos, segundos c.set(2016, 8-1, 6, 18, 30, 58); fechayhora = c.getTime(); strfecha = "2016-08-06"; strhora = "18:30:58"; strfechayhora = strfecha + " " + strhora; } @Test public void testAFechaMySQL() { Date date = fechayhora; String expResult = strfecha; String result = Util.aFechaMySQL(date); String m = "aFechaMySQL(" + date + ") := " + result; assertEquals(m, expResult, result); System.out.println(m + " --> OK"); } @Test public void testAHoraMySQL() { Date date = fechayhora; String expResult = strhora; String result = Util.aHoraMySQL(date); String m = "aHoraMySQL(" + date + ") := " + result; assertEquals(m, expResult, result); System.out.println(m + " --> OK"); } @Test public void testAFechaYHoraMySQL() { Date date = fechayhora; String expResult = strfechayhora; String result = Util.aFechaYHoraMySQL(date); String m = "aFechaYHoraMySQL(" + date + ") := " + result; assertEquals(m, expResult, result); System.out.println(m + " --> OK"); }
  • 7. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar @Test public void testFormatoPesos() { double valor = 1500800; String expResult = "$ 1.500.800"; String result = Util.aFormatoPesos(valor); String m = "formatoPesos(" + valor + ") := " + result; assertEquals(m, expResult,result); System.out.println(m + " --> OK"); } @Test public void testFormatoID() { double valor = 92456852; String expResult = "92.456.852"; String result = Util.aFormatoID(valor); String m = "formatoID(" + valor + ") := " + result; assertEquals(m, expResult, result); System.out.println(m + " --> OK"); } }//Fin de la clase UtilTest Clic derecho sobre el archivo de prueba y ejecutar archivo para ver el resultado de la prueba
  • 8. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar Test Parametrizado package utilidades; import java.util.Arrays; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; /** * @author Ing. Emerson Garay Gómez * @asignatura Ingeniería de Software III * @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos) * @tema Validación de GUI * @since 2016 */ @RunWith(Parameterized.class) public class ValidarEsNumeroEnteroTestParametrizado { private final String datoEntrada; private final boolean datoEsperado; @Parameterized.Parameters public static List<Object[]> getDatos(){ return Arrays.asList( new Object[][] { {"0", true}, {"1234567890", true}, {"-1", true}, {"-1234567890", true}, {"+1234567890", true}, {"-0", true}, {"+0", true}, {"350", true}, {"Hola", false}, {"3.141618", false}, {"3,141618", false}, {"3.14E3", false} } ); } public ValidarEsNumeroEnteroTestParametrizado(String entrada, boolean esperado){ this.datoEntrada = entrada; this.datoEsperado = esperado; } @Test public void testParametersEsNumeroEntero() { String campo = datoEntrada; boolean expResult = datoEsperado; boolean result = Validar.esNumeroEntero(campo); String m = "esNumeroEntero(" + campo + ") := " + result; assertEquals(m,expResult,result); System.out.println(m + result + " --> OK"); } }//Fin de la clase ValidarEsUnNumeroEnterotestParametrizado
  • 9. Taller Practico 3.1: Ingeniería de Software III – Pruebas Unitarias con JUnit en NetBeans www.youtube.com/emergaray www.slideshare.net/emergar Test de Suite Se escogen algunas o todas las pruebas unitarias para ejecutar de una vez package utilidades; import org.junit.runner.RunWith; import org.junit.runners.Suite; /** * @author Ing. Emerson Garay Gómez * @asignatura ingeniería de Software III * @tema Aplicación Java <--> Conexión <--> MySQL(Base de datos) * @tema Validación de GUI * @since 2016 */ @RunWith(Suite.class) @Suite.SuiteClasses({ utilidades.UtilTest.class, utilidades.ValidarTest.class, utilidades.ValidarEsNumeroEnteroTestParametrizado.class }) public class TestSuite { }