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

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