Pruebas unitarias con JUNIT - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Pruebas unitarias con JUNIT

Description:

Aseguran que un m todo particular de una clase realiza exitosamente un conjunto de tareas. ... forward. Pruebas Unitarias. JUnit: Struts? ... – PowerPoint PPT presentation

Number of Views:578
Avg rating:3.0/5.0
Slides: 20
Provided by: luisecru
Category:
Tags: junit | con | fwd | pruebas | unitarias

less

Transcript and Presenter's Notes

Title: Pruebas unitarias con JUNIT


1
Pruebas unitarias con JUNIT
2
Pruebas Unitarias
Qué son las pruebas unitarias?
Aseguran que un método particular de una clase
realiza exitosamente un conjunto de tareas.
Una prueba unitaria es una pieza de código
escrita por un desarrollador que ejercita un muy
pequeña y específica área de funcionalidad del
código desarrollado.
3
Pruebas Unitarias
Por qué escribir pruebas?
  • Reducir los bugs en nuevas funcionalidades.
  • Reducir los bugs en las funcionalidades
    existentes.
  • Hacer pruebas nos ayuda a pensar.
  • Las pruebas son buena documentación.
  • Ayudan a mejorar el diseño.

Pero estamos muy ocupados!
4
Pruebas Unitarias
JUnit Una pequeña ayuda
Necesito escribir unas pocas líneas de código,
ejecutar la prueba y que corra, o mejor aún que
no corra, entonces escribo el código que la haga
correr
JUnit es la solución!
5
Pruebas Unitarias
JUnit Ejemplo Encontrar el número mayor
package cl.developer public class NumberUtils
public int encontrarMayor(int arreglo)
int mayor Integer.MAX_VALUE
for(int i 0 i lt arreglo.length i)
if (arregloi gt mayor)
mayor arregloi
return mayor
package cl.developer import junit.framework.Test
Case public class TestNumberUtils extends
TestCase public void testMayor()
NumberUtils utils new NumberUtils()
int res utils.encontrarMayor(new int 2,3)
assertEquals(3, res)
6
Pruebas Unitarias
JUnit Qué pasa en el mundo real?
Servicios o recursosremotos
TestCase
Código bajo prueba
Sistema de Archivos
Sistemas deBasesde Datos
7
Pruebas Unitarias
JUnit Qué pasa en el mundo real?
TestCase
Código bajoprueba
EJB
Los errores y fallas podrían no estar
relacionados con el código bajo prueba
Código no relevante para la prueba
8
Pruebas Unitarias
JUnit Mock Objects (Imitadores)
ClassA
RecursoExterno
Class B
Unit test
RecursoExterno
Class
Créeme! Soy B
9
Pruebas Unitarias
JUnit Mock Objects (Aislamiento)
ClassA
RecursoExterno
ClassB
Unit test
RecursoExterno
Class
10
Pruebas Unitarias
JUnit Mock Objects (Pruebas de integración)
ClassA
RecursoExterno
Class B
Unit test
RecursoExterno
Class
11
Pruebas Unitarias
JUnit Ejemplo Mock
class TestCache extends MockTestCase public
void testMock() Mock reader
mock(DataReader.class)
reader.expects(once()).method(readData).will(ret
urnValue(ltdatogt)) Cache cache new
Cache((DataReader) reader.proxy())
String valor cache.getParametro(CL)
assertEquals(Chile, valor)
12
Pruebas Unitarias
JUnit Struts?Más problemas?
En ocasiones necesitamos imitar comportamientos
mas complejos. Imitar Struts requiere demasiado
esfuerzo.
forward
response
session
mapping
request
13
Pruebas Unitarias
JUnit Struts?
En ocasiones necesitamos imitar comportamientos
mas complejos. Imitar Struts requiere demasiado
esfuerzo.
Estamos de suerteAlguien ya lo hizo por
nosotros!
StrutsTestCase
14
Pruebas Unitarias
JUnit StrutsTestCase
StrutsTestCase es una simulación de Struts.
Provee un mock de struts que puede correr
fuera de un contenedor de servlets
class TestMonetario extends MockStrutsTestCase
public void testPago()
setRequestPathInfo("/tcreditoonline",
"/pagoNacionalAction.do")
addRequestParameter("method", "realizar")
addRequestParameter("objeto", "134604085")
addRequestParameter("cuentaCte",
"134604085") addRequestParameter("tipoCue
nta", "CCT") addRequestParameter("monto",
"5000") actionPerform()
verifyForward("error") assertEquals("No
existe tarjeta.", (String) getRequest().getAttribu
te("errorMsg"))
15
Pruebas Unitarias
JUnit Uniendo todo
Ejemplo Pago Full TDC Monetario (Nos vamos al
código)
16
(No Transcript)
17
Pruebas Unitarias
JUnit Fin
Preguntas?
18
Pruebas Unitarias
Y como no, el Bonus Track
Próximos desafíos?
Test Driven Development
Pruebas Unitarias
Test First Design
Refactoring
19
Pruebas Unitarias
Ahora sí
Fin.
Write a Comment
User Comments (0)
About PowerShow.com