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

Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
Mario Villaseñor
 
Cubo y cuadrado java
Cubo y cuadrado javaCubo y cuadrado java
Cubo y cuadrado java
Robert Wolf
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadora
jbersosa
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 

La actualidad más candente (20)

Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
ARQUITECTURA EN CAPAS.pdf
ARQUITECTURA EN CAPAS.pdfARQUITECTURA EN CAPAS.pdf
ARQUITECTURA EN CAPAS.pdf
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Eclipse refactoring
Eclipse refactoringEclipse refactoring
Eclipse refactoring
 
Modelo V
Modelo VModelo V
Modelo V
 
Modelo espiral
Modelo espiralModelo espiral
Modelo espiral
 
Cubo y cuadrado java
Cubo y cuadrado javaCubo y cuadrado java
Cubo y cuadrado java
 
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadora
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Exposición Python
Exposición PythonExposición Python
Exposición Python
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Mapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareMapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de Software
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la poo
 

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_2013
dayaorte
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUG
Jordi Gerona
 
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 Jmock
kaolong
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gio
Robert Wolf
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcial
mtemarialuisa
 
Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - Trovit
Jordi Gerona
 

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ángulo
Emerson 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

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
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
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

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 { }