Consulta teórica y práctica de la librería JUnit - ProgOrientadaObjetos-P-AA2020/tarea-consulta-semana05-2bim-BryanRODriguez22 GitHub Wiki

JUnit en el lenguaje java

Descripción

Cuando probamos un programa, lo ejecutamos con unos datos de entrada (casos de prueba) para verificar que el funcionamiento cumple los requisitos esperados. Definimos prueba unitaria como la prueba de uno de los módulos que componen un programa.

JUnit es un marco simple para escribir pruebas repetibles para el lenguaje de programación Java . Es una instancia de la arquitectura xUnit para marcos de prueba de unidades.Se encuentra completamente integrado en los IDEs más utilizados. JUnit puede utilizarse para cualquier tipo de testing automatizado y no solo para pruebas unitarias. Aplicando lo anterior a Java, JUnit es un conjunto de clases opensource que nos permiten probar nuestras aplicaciones Java.

Métodos

A grandes rasgos, una clase de Test realizada para ser tratada por JUnit 4 tiene una estructura con 4 tipos de métodos:

  • Método setUp: Asignamos valores iniciales a variables antes de la ejecución de cada test. Si solo queremos que se inicialicen al principio una vez, el método se debe llamar "setUpClass"

  • Método tearDown: Es llamado después de cada test y puede servir para liberar recursos o similar. Igual que antes, si queremos que solo se llame al final de la ejecución de todos los test, se debe llamar "tearDownClass"

  • Métodos Test: Contienen las pruebas concretas que vamos a realizar.

  • Métodos auxiliares.

Funciones Booleanas

  • sertArrayEquals: Recibe como parámetro dos arrays y comprueba si son iguales. Devuelve assertionError si no se produce el resultado esperado

  • sertEquals: Realiza la comprobación entre dos valores de tipo numérico. Devuelve assertionError si no se produce el resultado esperado

  • sertTrue: Comprueba si una condición se cumple. Devuelve assertionError si no se produce el resultado esperado

  • il: devuelve una alerta informando del fallo en el test

Anotaciones

Se trata de palabras clave que se colocan delante de los métodos definidos antes y que indican a las librerías JUnit instrucciones concretas.

A continuación pasamos a ver las más relevantes:

  • @RunWith: Se le asigna una clase a la que JUnit invocará en lugar del ejecutor por defecto de JUnit

  • @Before: Indicamos que el siguiente método se debe ejecutar antes de cada test (precede al método setUp). Si tiene que preceder al método setUpClass, la notación será "@BeforeClass"

  • @After: Indicamos que el siguiente método se debe ejecutar después de cada test (precede al método tearDown). Si tiene que preceder al método tearDownClass, la notación será "@AfterClass"

  • @Test: Indicamos a Junit que se trata de un método de Test. En versiones anteriores de JUnit los métodos tenían que tener un nombre con la siguiente estructura: "test". Con esta notación colocada delante de los métodos podemos elegir el nombre libremente.

Además existen otras posibilidades más avanzadas:

  • Suites: es una colección de un conjunto de test que se ejecutan de forma independiente

  • Runners: Definen cómo ejecutar los test

  • Test parametrizados: test genéricos que se ejecutan con juegos de datos distintos

  • Rules: Pueden ejecutar código antes, después o dentro de los métodos

Clases JUnit

Las clases JUnit son clases importantes, utilizadas para escribir y probar JUnits. Algunas de las clases importantes son:

  • Assert : contiene un conjunto de métodos de aserción .

  • TestCase : contiene un caso de prueba que define el dispositivo para ejecutar múltiples pruebas.

  • TestResult : contiene métodos para recopilar los resultados de la ejecución de un caso de prueba.

Ejemplos

Declaración de anotaciones y función

Ejemplo 1

***Uso de de la libreria JUnit ***

Ejemplo 2

*** Uso de listas con la libreria JUnit ***

Ejemplo 3

Referencias

  • junit - Empezando con Junit | junit Tutorial. (2018). Recuperado de

https://riptutorial.com/es/junit

  • Casos de prueba: JUnit. (2017). Recuperado de

http://www.jtech.ua.es/j2ee/publico/lja-2012-13/sesion04-apuntes.html

  • JUnit | Marco de Desarrollo de la Junta de Andalucía. (2019). Recuperado de

http://www.juntadeandalucia.es/servicios/madeja/sites/default/files/historico/1.3.0/contenido-recurso-248.html

  • JUnit - Test Framework - Tutorialspoint. (2016). Recuperado de

https://www.tutorialspoint.com/junit/junit_test_framework.htm