[go: up one dir, main page]

0% encontró este documento útil (0 votos)
143 vistas35 páginas

L10 Junit MM

Este documento describe un laboratorio sobre pruebas de software utilizando la herramienta JUnit. Explica cómo crear clases de prueba para una clase existente, implementar métodos de prueba utilizando assertions y ejecutar las pruebas para validar el correcto funcionamiento del código. Se provee un ejemplo completo de pruebas unitarias para una clase Array, incluyendo la implementación y resultados de diferentes casos de prueba.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
143 vistas35 páginas

L10 Junit MM

Este documento describe un laboratorio sobre pruebas de software utilizando la herramienta JUnit. Explica cómo crear clases de prueba para una clase existente, implementar métodos de prueba utilizando assertions y ejecutar las pruebas para validar el correcto funcionamiento del código. Se provee un ejemplo completo de pruebas unitarias para una clase Array, incluyendo la implementación y resultados de diferentes casos de prueba.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE

LABORATORIO N° 08

JUNIT

DISEÑO Y DESARROLLO DE SOFTWARE


PROGRAMA DE FORMACIÓN REGULAR
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 2 de 35

CODIGO DEL CURSO:

Alumno(s) Nota

Ponce Gomez, Abel Alejandro

Grupo C-24
Ciclo IV
Fecha de entrega 06/11/2023
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 1 de 35

I.- OBJETIVOS:
 Conocer los aspectos básicos para realizar pruebas de caja blanca.
 Usar herramientas incorporadas a las tecnologías de pruebas.

II.- SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del
hardware, conexiones eléctricas o de red; así como la
ingestión de alimentos o bebidas.

III.- FUNDAMENTO TEÓRICO:


Revise sus diapositivas del tema antes del desarrollo del laboratorio.

IV.- NORMAS EMPLEADAS:


No aplica

V.- RECURSOS:
 En este laboratorio cada alumno trabará con un equipo con Windows 8.

VI.- METODOLOGÍA PARA EL DESARROLLO DE LA TAREA:


 El desarrollo del laboratorio es individual.

VII.- MARCO TEORICO:

JUnit es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera
controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como
se espera. Es decir, en función de algún valor de entrada se evalúa el valor de retorno esperado; si la clase
cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba;
en caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá
un fallo en el método correspondiente.

En la actualidad las herramientas de desarrollo como NetBeans y Eclipse cuentan con plug-ins que permiten que
la generación de las plantillas necesarias para la creación de las pruebas de una clase Java se realice de
manera automática, facilitando al programador enfocarse en la prueba y el resultado esperado, y dejando a la
herramienta la creación de las clases que permiten coordinar las pruebas.
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 2 de 35

VIII.- PROCEDIMIENTO:
Nota:
Las secciones en cursivas son demostrativas, pero sirven para que usted pueda instalar las herramientas de
desarrollo en un equipo externo.

PROYECTO 1:

1. Proponer un artefacto para la documentación de pruebas unitarias.


Adjuntar una imagen del documento propuesto.

2. Crear el archivo que almacenara las clases de prueba.

Esta clase deberá terminar con la palabra ‘Test’. Por ejemplo, si la clase a evaluar es Ventas.java,
la clase de prueba debe llamarse VentasTest.java.
Nosotros crearemos la clase Array.java con su respectiva clase prueba ArrayTest.java.

3. Ingresar el siguiente código en nuestra clase Array.java


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 3 de 35

Imágenes evidencia:

4. Creación de Métodos Prueba


Crear una clase de prueba de la clase Array.java, empleando JUnit, configurando la pantalla
principal como sigue:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 4 de 35

En la clase ArrayTest modificaremos los métodos prueba para tres métodos de la clase Array, en
este caso colocaremos el prefijo test antes del nombre del método.

5. Implementación de los métodos de pruebas.


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 5 de 35

En los métodos prueba se debe invocar al método assert correspondiente, un método assert
realiza comparaciones y detienen el caso prueba cuando la comparación no fue exitosa, existen
diversos tipos de assert para distintos casos prueba.
Generalmente un assert se encarga de comparar el resultado obtenido con el resultado esperado.

a. Implementación del método testSize:

El método assertEquals(3,a.size()) compara que ambos valores sean iguales. En este caso
estamos iniciando con un valor fijo que es ‘3’. Por lo tanto, al ejecutar este caso prueba, el
resultado será exitoso.

b. Implementación del método testToString:

Este caso es similar al anterior, iniciamos con un conjunto de valores y lo comparamos con el
resultado deseado. Por lo tanto, al ejecutar este caso prueba, el resultado será exitoso.

Para la ejecución del test: Clic derecho sobre la clase de prueba > Test File

Mostrar y comentar los resultados.

Comentarios:

- En Failures ArrayTest.testToString:20 expected: <1;2;3> but was: <123>: Esto indica que la prueba
testToString falló. La prueba esperaba que el método toString de la clase Array devolviera la cadena
"1;2;3", pero en su lugar, el método devolvió "123", lo que sugiere que la implementación del método
toString en la clase Array no está generando la cadena esperada.
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 6 de 35

- El mensaje de error BUILD FAILURE y el mensaje posterior indican que el proceso de construcción
(build) falló debido a que hubo una prueba que no pasó con éxito, su causa principal es el fallo en
ArrayTest.testToString, como se explicó anteriormente. La diferencia entre lo esperado (<1;2;3>) y lo
que se obtuvo (<123>) es lo que provocó el fallo.
- En test run se menciona que se realizo 3 pruebas unitarias.

Nota: para que no halla ningún error se tendría que modificar la linea <”1;2;3”>, a <”123”>

Imagen evidencia: Resultado al pulsar test file.

¿Qué pasaría si la comparación no es correcta? Por ejemplo:

Lo que sucederá es que nos mostrara que hubo un error encontrado, y se mostrara donde
ocurrió dicho error.

Imagen evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 7 de 35

En este caso la prueba no es exitosa y nos indica donde ocurrió el problema. Mostrar y
comentar los resultados.

Imagen evidencia:

Comentarios:

- La prueba ArrayTest.testToString esperaba que el método toString devolviera "<1x2x3>", pero en su lugar
recibió "<123>", la diferencia está en el formato en el que se devuelve la representación en cadena del objeto
Array.

c. Implementación del método testSetElementAt:


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 8 de 35

Imagen evidencia:

Ejecutar el test, mostrar y comentar los resultados.

Comentarios:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 9 de 35

- Al ejecutar se pudo observar que no se presentó ningún error en el código, y que la prueba fue exitosa.
- El fragmento de código crea un objeto Array con un arreglo inicial de {1,2,3}, luego cambia el valor en la
posición 2 del arreglo a 100, obtiene el arreglo modificado y verifica si el valor en la posición 2 del arreglo
modificado es igual a 100.

6. Criterios de una prueba correcta

En los ejemplos anteriores realizamos una validación o caso prueba para tres métodos,
generalmente se deben realizar varios casos pruebas con valores distintos, para poder comprobar
cuan robusto es nuestro método.

Veamos un nuevo caso prueba para el método SetElementAt:

Ejecutar el test, mostrar y comentar los resultados.


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 10 de 35

Comentarios:

Este caso de prueba demuestra cómo se pueden probar diferentes aspectos del método
setElementAt, como su capacidad para cambiar un elemento en una posición específica y su
capacidad para manejar excepciones cuando se intenta acceder a índices fuera de rango.

Indique para que se utilizan los métodos assertFalse() y assertTrue():

assertTrue(boolean condition) es un método que se utiliza para verificar que la condición


especificada sea verdadera. Si la condición es verdadera, la prueba se considera exitosa. Si
la condición es falsa, la prueba falla. Por ejemplo, se puede usar para verificar que una
expresión booleana sea verdadera antes de continuar con otras pruebas o acciones.

assertFalse(boolean condition) es un método que se utiliza para verificar que la condición


especificada sea falsa, si la condición es falsa, la prueba se considera exitosa, y si la
condición es verdadera, la prueba falla. Se utiliza para asegurarse de que ciertas
condiciones sean falsas antes de continuar con pruebas adicionales.

7. Método setUp() y tearDown()

Cuando ejecutamos casos de prueba es posible tener la necesidad de obtener recursos o


instanciar un atributo para cada método, por ejemplo, cuando necesitemos realizar una conexión a
la base de datos a cada método, JUnit provee métodos, que nos ayudan a simplificar tareas.

setUp(): Este método que se ejecuta antes de empezar a ejecutar un método prueba. Podremos
encontrar casos en los que necesitemos ejecutar algún tipo de tarea específica, antes de lanzar la
prueba. Por ejemplo vendría muy bien, para abrir una base de datos antes de comenzar las
pruebas.

tearDown(): Este método tiene una función similar a setUp(), con la diferencia de que éste se
ejecutará al final del código, para finalizar el tipo de tarea especificada. Esta opción la podríamos
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 11 de 35

utilizar por ejemplo para desconectar una base de datos abierta anteriormente con el método
setUp.

Ejemplo:

Crearemos los siguientes métodos adicionales en nuestra clase ArrayTest (adicionarlos al final):

Imagen evidencia:

Ejecutar el Test, mostrar y comentar los resultados.

Comentarios:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 12 de 35

Al ejecutar, como con los anteriores casos los resultados fueron exitosos.

PROYECTO 2:

1. Generar un nuevo proyecto como sigue:

Imagen evidencia:

2. En la clase principal, ingresar el código siguiente:


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 13 de 35

3. Crear la clase de prueba (CalculadoraTest.java), utilizando JUnit (dejar marcadas todas las opciones).

Imagen evidencia:

4. Sin hacer cambios, ejecute la clase de prueba. Muestre y comente los resultados obtenidos.

Imagen evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 14 de 35
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 15 de 35

Comentarios:

- Al ejecutar no hubo ningún error, ya que no se esta evaluando nada.

5. Borrar todos los métodos actuales e ingresar los siguientes métodos de prueba:

Imagen evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 16 de 35

6. Ejecute el test, muestre y comente los resultados.

Imágenes evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 17 de 35

Comentarios:

- Al ejecutar no se visualizó ningún error en los métodos de prueba ingresados.

7. Indique tres casos en los que las pruebas fallarán.


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 18 de 35

- Prueba de suma con resultado incorrecto.

@Test
public void testSumaResultadoIncorrecto(){
int resultado = Calculadora.suma(2, 3);
int esperado = 6; // Esperado incorrecto
assertEquals(esperado, resultado);
}

- Prueba de resta con resultado incorrecto.


@Test
public void testRestaResultadoIncorrecto(){
int resultado = Calculadora.resta(3, 2);
int esperado = 5; // Esperado incorrecto
assertEquals(esperado, resultado);
}
- Prueba de suma con números negativos

@Test
public void testSumaNumerosNegativos(){
int resultado = Calculadora.suma(-2, -3);
int esperado = -5; // Esperado incorrecto
assertEquals(esperado, resultado);
}

8. Modificar el código de la clase Calculadora.java como sigue:


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 19 de 35

Imagen evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 20 de 35

9. Regresar a la clase de prueba y borre todos los métodos generados.

10. Ingresar el siguiente código en la clase de prueba CalculadoraTest.java:


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 21 de 35

Imagen evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 22 de 35

11. Ejecutar el test, muestre y comente los resultados obtenidos (tome nota de los mensajes mostrados en
la consola de salida).

Imagen evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 23 de 35

Mensajes mostrados:

before()
sum()
after()
before()
ansSum()
after()
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.032 s - in src.CalculadoraTest

Esto indica que las pruebas se ejecutaron con éxito. Los métodos before() y after() se ejecutaron antes
y después de cada prueba, respectivamente. Las pruebas testSum y testAnsSum se ejecutaron sin
errores, ya que no se informan fallos ni errores. El tiempo total transcurrido para ejecutar las pruebas
fue de 0.032 segundos.

12. De acuerdo a los resultados obtenidos, ¿cuál es la utilidad de los métodos before() y after()?

before(): Este método se ejecuta antes de cada prueba (método de prueba anotado con @Test). Su
propósito es configurar el entorno de prueba antes de que se ejecute la prueba en sí. En este ejemplo
anterior, se utiliza para inicializar una instancia de la clase Calculadora antes de cada prueba, lo que
asegura que cada prueba tenga un estado limpio y consistente antes de comenzar a realizar las
comprobaciones.

after(): Este método se ejecuta después de cada prueba, su función principal es limpiar o restablecer
cualquier estado o recursos que se hayan utilizado en la prueba. En este ejemplo, se utiliza para llamar
al método clear() en la instancia de Calculadora, lo que reinicia la calculadora a su estado inicial. Esto
garantiza que no haya efectos secundarios no deseados entre pruebas.

13. En la clase Calculadora.java, agregar el siguiente método:

14. Luego de ello, incluir dos nuevos métodos de prueba en CalculadoraTest.java:


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 24 de 35

Imagen evidencia:

15. Modifique en el método testDiv: calc.div(5,2)  calc.div(5,0); ejecute el test, muestre y comente los
resultados.

16. Modifique en el método testDivPorCero: calc.div(5,0)  calc.div(5,3); ejecute el test, muestre y


comente los resultados.

Imagen evidencia:

Resultado:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 25 de 35

17. De acuerdo a los resultados obtenidos, ¿cuál es la finalidad de utilizar el parámetro excepted?
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 26 de 35

Su finalidad es indicar qué excepción se espera en una prueba y cómo manejarla, en las pruebas
donde utilizaste @Test(expected = ...) o la validación manual para manejar excepciones, estás
probando escenarios donde se generan excepciones. Esto es útil para verificar si tu código maneja
correctamente las excepciones cuando ocurren y que las excepciones adecuadas se generan en
situaciones específicas.

18. En la clase Calculadora.java, agregue el siguiente método:

Imagen evidencia:

19. Luego de ello, agregar un nuevo método de prueba en la clase de prueba CalculadoraTest.java:

Imagen evidencia:

20. Ejecutar el test, mostrar y comentar los resultados obtenidos.


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 27 de 35

21. De acuerdo a los resultados obtenidos, ¿cuál es la finalidad de utilizar el parámetro timeout? ¿En qué
otros casos nos puede ser útil este parámetro?

El parámetro timeout en los métodos de prueba en JUnit permite especificar un límite de tiempo en el que
se espera que un método de prueba se ejecute y finalice. La finalidad de utilizar este parámetro es
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 28 de 35

asegurarse de que un método de prueba no se ejecute durante más tiempo del esperado y, por lo tanto,
detectar posibles problemas relacionados con el rendimiento o bloqueos en el código.

22. En la clase de prueba CalculadoraTest.java, agregar lo siguiente:

Imagen evidencia:

23. Agregue la instrucción System.out.println(“método()”); al inicio de cada método de prueba que esté
faltando.

24. Ejecute el test, muestre y comente los resultados.

Imágenes evidencia:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 29 de 35

25. De acuerdo a los resultados obtenidos, ¿cuál es la finalidad de los métodos beforeClass() y afterClass()?
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 30 de 35

@BeforeClass: Este método se anota con @BeforeClass y se ejecuta una sola vez antes de que se
ejecuten todas las pruebas dentro de la clase de pruebas. Su finalidad es configurar el estado inicial que
será común a todas las pruebas de la clase. Por ejemplo, puede utilizarse para establecer conexiones a
bases de datos, inicializar variables compartidas o realizar cualquier otra tarea de configuración que sea
necesaria para las pruebas.

@AfterClass: Este método se anota con @AfterClass y se ejecuta una sola vez después de que todas las
pruebas dentro de la clase de pruebas se hayan completado. Su finalidad es realizar tareas de limpieza y
liberar recursos que puedan haber sido utilizados por las pruebas. Por ejemplo, se puede utilizar para
cerrar conexiones a bases de datos, liberar memoria o realizar cualquier otra tarea de limpieza necesaria.

Trabajo de Investigación:
- Implementar el método multi, para realizar la multiplicación de dos números. Implementar adicionalmente
el método de prueba correspondiente. Ejecute la prueba, muestre y comente resultados.

Primero, implementamos el método multi en la clase Calculadora. Luego, crearemos un método de prueba
correspondiente en la clase CalculadoraTest

Imágenes evidencia:

Este método de prueba verifica si la multiplicación de 3 por 2 es igual a 6, como se espera.

Resultado al ejecutar:
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 31 de 35

Al ejecutar no hubo ningún error por lo que el resultado fue exitoso.


Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 32 de 35

- Comentar sobre las anotaciones en Java, aplicables a métodos de una clase normal Java y una clase de
prueba Java.

Anotaciones en Java aplicables a métodos:

@Override: Esta anotación se utiliza para indicar que un método en una subclase está anulando un método en
una superclase.

@SuppressWarnings: Se usa para suprimir advertencias del compilador. Puede aplicarse a nivel de método
para silenciar advertencias específicas del compilador.

Anotaciones en Java aplicables a métodos de una clase de prueba (JUnit):

@Test: Esta es una anotación clave en JUnit que se utiliza para identificar métodos de prueba. Los métodos
anotados con @Test se ejecutan como pruebas unitarias.

@Before: Se utiliza para marcar métodos que deben ejecutarse antes de cada prueba (se ejecutan una vez
antes de cada método @Test).

@After: Se utiliza para marcar métodos que deben ejecutarse después de cada prueba (se ejecutan una vez
después de cada método @Test).

@BeforeClass: Se utiliza para marcar métodos que deben ejecutarse una vez antes de que se ejecuten todas
las pruebas en la clase.

@AfterClass: Se utiliza para marcar métodos que deben ejecutarse una vez después de que se hayan
ejecutado todas las pruebas en la clase.

OBSERVACIONES:

- En los primeros ejemplos, se ha demostrado cómo crear pruebas unitarias utilizando el framework JUnit en
Java. Se ha explorado la creación de clases de prueba, métodos de prueba anotados con @Test y cómo usar
métodos de aserciones como assertEquals para verificar que los resultados de los métodos probados sean los
esperados.

- Se ha mostrado el uso de los métodos setUp y tearDown, que se ejecutan antes y después de cada prueba,
respectivamente, para establecer y limpiar el entorno de prueba. Esto es útil para asegurarse de que cada
prueba se ejecute en un estado consistente y no tenga efectos secundarios no deseados.

- También se han analizado situaciones en las que las pruebas pueden fallar, como cuando los resultados
esperados no coinciden con los resultados reales. Se han utilizado métodos de aserción como assertTrue y
assertFalse para verificar condiciones booleanas en las pruebas.

- Se ha explorado el uso de anotaciones especiales en JUnit, como @Before, @After, @BeforeClass y


@AfterClass, para realizar configuraciones y limpiezas antes y después de las pruebas.

- Se ha observado el uso de parámetros en las anotaciones, como @Test(expected = ...), que permiten
especificar qué excepción se espera en una prueba y cómo manejarla. Esto es útil para verificar si el código
maneja correctamente las excepciones cuando ocurren.

- Además, se ha utilizado el parámetro timeout para establecer un límite de tiempo en el que se espera que un
método de prueba se ejecute y finalice. Esto es útil para detectar problemas relacionados con el rendimiento o
bloqueos en el código.

CONCLUSIONES:
- Las pruebas unitarias son una parte esencial del proceso de desarrollo de software, ya que permiten verificar el
correcto funcionamiento de las unidades de código (métodos) de una aplicación.
Laboratorio 08 Nro. DD-106
CONSTRUCCIÓN Y PRUEBAS DE SOFTWARE Página 33 de 35

- JUnit es una herramienta muy útil para la creación y ejecución de pruebas unitarias en Java. Facilita la creación
de pruebas y proporciona un marco de trabajo para organizar y ejecutar las pruebas de manera controlada.

- Es fundamental asegurarse de que las pruebas sean completas y abarquen diferentes casos, incluyendo casos
donde se esperan fallos y excepciones.

- El uso de anotaciones en Java, especialmente en combinación con JUnit, simplifica el proceso de escritura y
ejecución de pruebas unitarias.

- El uso de métodos setUp y tearDown es importante para garantizar que las pruebas se ejecuten en un entorno
controlado y consistente.

- El manejo de excepciones y el uso de parámetros como timeout en las pruebas permiten evaluar el
comportamiento del código en situaciones excepcionales y en términos de rendimiento.

- Realizar pruebas de manera sistemática ayuda a identificar y corregir errores en una etapa temprana del
desarrollo, lo que conduce a un código más robusto y confiable.

También podría gustarte