junit tutorial beginners what is junit testing
Este tutorial de JUnit para principiantes explica qué es la prueba unitaria, la cobertura de la prueba y el marco de prueba de JUnit junto con ejemplos de casos de prueba de JUnit:
Esta serie JUnit ha sido preparada para enfocarse en nuestras audiencias que son principiantes absolutos, así como en aquellos que tienen un buen conocimiento de Java o JUnit con un gran interés en aprender JUnit.
La serie en su totalidad se ha presentado de tal manera que podrá interpretar la diferencia entre JUnit 4 y Junit 5.
¡Comencemos a explorar JUnit ahora!
Lo que vas a aprender:
preguntas y respuestas de la entrevista de prueba de base de datos para experimentados
Lista de tutoriales de esta serie JUnit
Tutorial #1: Tutorial JUnit para principiantes: ¿Qué es la prueba JUnit? (Este tutorial)
Tutorial #2: Descargar, instalar y configurar JUnit en Eclipse
Tutorial #3: Pruebas JUnit: Cómo escribir casos de prueba JUnit con ejemplos
Tutorial #4: ¿Qué es un dispositivo de prueba JUnit? Tutorial con ejemplos de JUnit 4
Tutorial #5: Múltiples formas de ejecutar pruebas JUnit
Tutorial #6: Lista de anotaciones de JUnit: JUnit 4 Vs JUnit 5
Tutorial #7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Tutorial #8: JUnit Test Suite y filtrado de casos de prueba: JUnit 4 Vs JUnit 5
Tutorial #9: Orden de ejecución de la prueba JUnit: orden de las pruebas JUnit 4 Vs JUnit 5
Tutorial #10: Cómo usar la anotación JUnit 5 @RepeatedTest con ejemplos
Tutorial #11: Clase anidada de JUnit 5: Tutorial @ anidado con ejemplos
Tutorial #12: Nombre de visualización personalizado de JUnit 5 y ejecución de prueba condicional
Tutorial #13: JUnit Vs TestNG - Cuáles son las diferencias
Tutorial de JUnit
En un enfoque típico de desarrollo basado en pruebas (TDD), los desarrolladores se centran en probar unitariamente cada fragmento del código que desarrollan. Cuanto mejor sea la prueba de un producto, mejor será la calidad del mismo. Todos sabemos que las pruebas deben realizarse en paralelo con cada fase del ciclo de vida del desarrollo de software.
Desde el requisito y el análisis hasta el diseño y desarrollo hasta el mantenimiento, cada fase debe tener una fase de prueba adecuada asociada. La prueba unitaria después del desarrollo es lo que se recomienda para construir una aplicación robusta y tener un código optimizado en su lugar.
¿Qué es la prueba unitaria?
La prueba unitaria consiste en probar una pequeña lógica o un código para verificar que la salida del código sea la esperada en la entrada de un dato específico y / o en la satisfacción de ciertas condiciones. Por lo general, se supone que las pruebas unitarias son independientes de las otras pruebas.
Las pruebas unitarias no son factibles para probar interfaces complejas con otra aplicación o servicios externos o de terceros. Una prueba unitaria tiene como objetivo solo una pequeña unidad de código que podría ser solo un método o una clase.
Ayuda al desarrollador a descubrir problemas en la lógica actual y cualquier falla de regresión debido al cambio actual. Además, también proporciona información sobre cómo el código actual podría afectar la implementación futura.
Cobertura de prueba
El porcentaje de código que se prueba mediante pruebas unitarias se denomina cobertura de prueba .
El objetivo es tener una mejor y más cobertura de prueba del código que en el futuro continuará sumando al conjunto de pruebas de regresión y ayuda a aumentar la ejecución y verificación de pruebas automatizadas, reduciendo así el esfuerzo manual involucrado en las pruebas de regresión.
La ejecución de pruebas ayuda a identificar automáticamente los problemas de regresión del software introducidos por cambios en el código actual. Tener una alta cobertura de prueba de su código le permite continuar desarrollando funciones sin tener que realizar muchas pruebas manuales.
Muchos vienen con una pregunta sobre cuánta cobertura de prueba es esencial . La respuesta a esta pregunta es que no existe una regla estricta sobre cuánta cobertura de pruebas es esencial; todo es crítico. El juicio mejora con la experiencia en el flujo de trabajo de la aplicación y el conocimiento histórico de los defectos encontrados hasta ahora.
Las pruebas eficientes no necesariamente significan tener una cobertura de prueba del 100% o incorporar pruebas de automatización y / o pruebas unitarias para cada cobertura de rama o ruta.
Ciertas verificaciones triviales, como un mensaje de error de validación para un campo obligatorio que se deja en blanco y que no tiene fallas desde hace años, no necesitan incluirse en el conjunto de regresión.
Pruebas manuales frente a pruebas automatizadas
Las pruebas unitarias se pueden realizar mediante dos enfoques:
profundidad primera búsqueda c ++
- Prueba manual
- Prueba automatizada
En ambos enfoques, el flujo de trabajo sigue siendo común:
- Creando un caso de prueba
- Revisándolo
- Vuelva a trabajar si se necesitan correcciones
- Ejecute el caso de prueba
- Analizar los resultados de la prueba
Se prefiere la prueba automatizada a la prueba manual por las siguientes razones:
Prueba manual | Prueba automatizada |
---|---|
Cuando un caso de prueba se ejecuta manualmente sin la intervención de una herramienta, se denomina prueba manual. | Cuando se ejecuta un caso de prueba con la ayuda de una herramienta sin mucha intervención manual, se denomina prueba automatizada. |
Se incluyen esfuerzos manuales repetitivos. | Se pueden evitar esfuerzos manuales repetitivos. |
Los esfuerzos humanos en las pruebas manuales podrían ser erróneos y consumir mucho tiempo. | Las pruebas de automatización son más rápidas y sin errores en comparación con los esfuerzos manuales. |
Los recursos de prueba necesarios son más para ejecutar cada caso de prueba manualmente, lo que se suma a la inversión en los recursos. | Se necesitan menos probadores para ejecutar pruebas automatizadas utilizando las herramientas automatizadas designadas, por lo tanto, hay menos inversión en recursos de prueba, lo que aumenta la rentabilidad. |
Las pruebas manuales deben limitarse a una pequeña cobertura de prueba teniendo en cuenta las restricciones de la línea de tiempo. Por lo tanto, existe el riesgo de omitir muchos escenarios de prueba, lo que también conlleva el riesgo de fugas de defectos. | Se pueden automatizar muchos escenarios de prueba diferentes y se pueden ejecutar varias veces incluso en situaciones de crisis de tiempo y recursos, lo que conduce a una mejor cobertura de prueba y una mejor calidad del entregable. |
Marco de prueba unitario
Es posible que tengamos la siguiente pregunta sobre cómo se ve un caso de prueba de unidad de automatización típico y el marco que sigue. Los desarrolladores utilizan el Marco de prueba unitaria para crear casos de prueba unitarios automatizados.
- Para verificar si el código funciona lógicamente como se esperaba, se crea un caso de prueba con un punto de control o criterio de verificación específico.
- Cuando se ejecuta el caso de prueba, el criterio / condición pasa o falla.
- Se genera un registro según el flujo de trabajo del caso de prueba.
- El marco informará un resultado resumido de los casos de prueba aprobados y fallidos.
- Según la gravedad de la falla, el caso de prueba puede no continuar y puede detener la ejecución posterior.
- Puede haber ciertas fallas graves bajas que se informan en el registro, sin embargo, no muestra una parada brusca, sino que continúa sin bloquear los pasos de prueba adicionales.
¿Qué es JUnit?
JUnit es un marco de código abierto que se utiliza para escribir y ejecutar pruebas unitarias en el lenguaje de programación Java. Es uno de los marcos de pruebas unitarias más conocidos.
La siguiente imagen muestra las diferentes herramientas de prueba de unidades de automatización conocidas.
A continuación se enumeran los atributos con los que está empaquetado JUnit:
- Hay una enorme lista de anotaciones para identificar, ejecutar y admitir muchas funciones para los métodos de prueba.
- Hay afirmaciones para verificar los resultados esperados.
- Proporciona Test Runner para ejecutar las pruebas.
- JUnit proporciona una plantilla básica incorporada para que pueda escribir casos de prueba pequeños y simples en poco tiempo.
- Las pruebas JUnit le ayudan a escribir módulos independientes, mejorando así la cobertura de la prueba y la calidad de la aplicación.
- No solo permite una fácil creación y ejecución de pruebas, sino que también presenta al desarrollador un informe explícito limpio y claro que elimina la necesidad de que el desarrollador busque en la ruta de los informes y los resultados de las pruebas.
- Hasta que la ejecución de la prueba se desarrolle sin problemas, puede relajarse viendo la barra de progreso de la prueba de color verde que se muestra mientras la ejecución está en progreso, mientras que le alerta en 'rojo' tan pronto como la prueba falla en un punto de control de verificación.
- Se pueden crear conjuntos de pruebas para juntar una secuencia o un conjunto relacionado de casos de prueba.
Ejemplos de JUnit Testcase
A continuación se muestran los dos ejemplos de un programa Hello World muy básico para comprender cómo se ve una clase de prueba JUnit o qué tan diferente se ve en comparación con un archivo de clase Java habitual.
Ejemplo 1:
Aquí hay un caso de prueba de JUnit HelloWorldJUnit.java que verifica que la cadena 'Hola mundo' coincide con la cadena 'hola mundo' que falla en la ejecución, ya que la coincidencia distingue entre mayúsculas y minúsculas. Por lo tanto, las dos cadenas no coinciden y la prueba falla .
El código de HelloWorldJUnit.java
|_+_|Ejemplo # 2:
Aquí, veremos cómo un habitual Java archivo de clase interactúa con un JUnit caso de prueba. Creamos un Java archivo de clase HelloWorld_Java.java con un constructor que nos permite pasar un valor de cadena y un método getText () para obtener el valor de cadena.
JUnit Clase de prueba HelloWorldJUnit.java se crea de tal manera que se crea el objeto de clase para HelloWorld_Java y se pasa el valor de cadena real al objeto. AssertEquals () de JUnit verifica si los valores de cadena esperados y reales coinciden.
El código de HelloWorld_Java.java
|_+_|El código de HelloWorldJUnit.java
|_+_|El resultado se ve a continuación, donde vemos que las dos cadenas coinciden. Por lo tanto, la prueba JUnit es aprobado.
Conclusión
Cuando se trata de proporcionarle una descripción general rápida de lo que es JUnit y lo que hace, JUnit es un marco bellamente diseñado que le permite crear y ejecutar pruebas unitarias de forma automatizada.
Es una herramienta de código abierto pero sin complicaciones. Ya sea la creación de casos de prueba o la ejecución de un caso de prueba o informes después de la ejecución o el mantenimiento de las pruebas, JUnit es elegante en todos los aspectos. Sí, también puede fallar elegantemente; y veremos cómo sucede eso en nuestro próximo tutorial a medida que avanzamos.
Sobre el Autor: Este tutorial ha sido escrito porShobhaD. Ella trabaja como líder de proyecto y cuenta con más de 9 años de experiencia en pruebas manuales, de automatización y API.
¿Qué necesito para ejecutar un archivo jar?
Continuemos iluminando más profundamente cada aspecto de JUNIT de aquí en adelante.
Lectura recomendada
- Tutorial de reflexión de Java con ejemplos
- Tutorial del método Java String contains () con ejemplos
- Matriz irregular en Java - Tutorial con ejemplos
- Tutoriales detallados de Eclipse para principiantes
- Tutorial de Java SWING: contenedor, componentes y manejo de eventos
- Operador ternario en Java - Tutorial con ejemplos
- Más de 20 tutoriales de MongoDB para principiantes: curso gratuito de MongoDB
- Tutorial de Spock: Prueba con Spock y Groovy