Programación III (Java) - 09 Cierre

603 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
603
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programación III (Java) - 09 Cierre

  1. 1. 9. Cierre JUnit y pruebas unitarias ExamenProgramación III Tema 9 - Cierre
  2. 2. JUnit y pruebas unitarias • JUnit es un framework para desarrollar pruebas unitarias – Pruebas de una clase / módulo de código – Objetivo: aislar las partes y probar la corrección de cada una – Se podrán ejecutar de forma automática • JUnit es una herramienta gratuita – http://www.junit.org – Integrada con Eclipse, NetBeans y otros IDEsProgramación III Tema 9 - Cierre
  3. 3. ¿Ganamos/perdemos tiempo? • Es habitual la idea de que hacer JUnits es una pérdida de tiempo – Pero es más una inversión – No sólo vale para prueba inicial sino • seguir probando en la evolución del sistema • permiten incorporar los bugs como nuevas pruebas • de forma progresiva ("aprender de los errores") • ¡Merece la pena invertir el tiempo para luego recuperarlo!Programación III Tema 9 - Cierre
  4. 4. Versión de JUnit • JUnit 3 utiliza código Java "habitual" • JUnit 4 utiliza anotaciones • En este resumen sólo hablaremos de JUnit 3Programación III Tema 9 - Cierre
  5. 5. Pasos a seguir – Importar JUnit: – import junit.framework.TestCase; – Crear una clase que extienda TestCase • Clase de pueba para una clase – Implementar método setUp() • Inicialización de las pruebas – Implementar método tearDown() • Si procede para liberar recursos (cerrar ficheros...) – Definir métodos de test: testXXX() • Uno por cada método original (XXX = nombre) – Ejecución del caso de prueba • Método run()Programación III Tema 9 - Cierre
  6. 6. ¿Qué hay en los tests? – Varios métodos que se pueden utilizar: • testEquals( val1, val2 ) --> si no son equals, fallo • testTrue( cond ) --> si no es cierta, fallo • fail( mensaje ) --> si llega a ejecutarse es fallo – También aserciones: • assertFalse( cond ), assertTrue( cond ) • assertNull( obj ), assertNotNull( obj ) • assertSame( obj ), assertNotSame( obj )Programación III Tema 9 - Cierre
  7. 7. Ejemplo public class OperacionTest extends TestCase { Operacion o1; protected void setUp() throws Exception { super.setUp(); o1 = Operacion.creaOperacion( "2 / -3 * (17 + 1)" ); } public void testCreaOperacion() { Operacion o1b = new OperacionBinaria( new Numero(2), /, new Numero(-3) ); Operacion o1b2 = new OperacionBinaria( new Numero(17), +, new Numero(1) ); o1b = new OperacionBinaria( o1b, *, o1b2 ); assertEquals( o1, o1b ); assertTrue( o1.getValor()==o1b.getValor() ); }Programación III Tema 9 - Cierre
  8. 8. TestSuite • Se pueden agrupar varias pruebas – Para lanzar todas juntas TestSuite ts = new TestSuite( "ejemplo" ); ts.addTest( new OperacionTest() ); ts.addTest( new FraccionTest() ); ts.addTest( new RealTest() );Programación III Tema 9 - Cierre
  9. 9. Examen • Dos horas • Ejercicio de programación en máquina – Partiendo de código ya desarrollado – Incluirá • Herencia • Interfaces • Excepciones • Ventanas • Eventos • Threads • Que compile, que funcioneProgramación III Tema 9 - Cierre

×