TestNG - Descripción general
La prueba es el proceso de verificar la funcionalidad de una aplicación para asegurarse de que funciona según los requisitos. Las pruebas unitarias entran en escena a nivel de desarrollador, donde se toman las medidas adecuadas para probar cada entidad (clase o método) para garantizar que el producto final cumpla con los requisitos.
JUnit ha llevado a los desarrolladores a comprender la utilidad de las pruebas, especialmente de las pruebas unitarias, en comparación con cualquier otro marco de pruebas. Aprovechando una arquitectura bastante simple, pragmática y estricta, JUnit ha podido "infectar" a un gran número de desarrolladores. Eche un vistazo a nuestro tutorial sobre JUnit para comprender bien sus características. JUnit, al mismo tiempo, también tiene algunas deficiencias, que se enumeran a continuación:
Inicialmente diseñado para permitir solo las pruebas unitarias, ahora se utiliza para todo tipo de pruebas.
No se pueden realizar pruebas de dependencia.
Control de configuración deficiente (instalación / desmontaje).
Intrusivo (te obliga a extender clases y nombrar tus métodos de cierta manera).
Modelo de programación estático (lo obliga a recompilar innecesariamente).
La gestión de diferentes conjuntos de pruebas en proyectos complejos puede ser muy complicada.
¿Qué es TestNG?
La definición de TestNG según su documentación es la siguiente:
TestNG es un marco de prueba inspirado en JUnit y NUnit, pero presenta algunas funcionalidades nuevas que lo hacen más poderoso y fácil de usar.
TestNG es un marco de pruebas automatizado de código abierto; dóndeNG medio NextGeneración. TestNG es similar a JUnit (especialmente JUnit 4), pero no es una extensión JUnit. Está inspirado en JUnit. Está diseñado para ser mejor que JUnit, especialmente cuando se prueban clases integradas. El creador de TestNG es Cedric Beust .
Al eliminar la mayoría de las limitaciones del marco anterior, TestNG le brinda al desarrollador la capacidad de escribir pruebas más flexibles y poderosas. Dado que se basa en gran medida en las anotaciones de Java (introducidas con JDK 5.0) para definir pruebas, también puede mostrarle cómo utilizar esta nueva característica del lenguaje Java en un entorno de producción real.
Funciones de TestNG
Admite anotaciones.
TestNG usa más funciones de Java y OO.
Admite pruebas de clases integradas (p. Ej., De forma predeterminada, no es necesario crear una nueva instancia de clase de prueba para cada método de prueba).
Separa el código de prueba en tiempo de compilación de la configuración / información de datos en tiempo de ejecución.
Configuración de tiempo de ejecución flexible.
Introduce 'grupos de prueba'. Una vez que haya compilado sus pruebas, puede pedirle a TestNG que ejecute todas las pruebas "front-end", o pruebas "rápidas", "lentas", de "base de datos", etc.
Admite métodos de prueba dependientes, pruebas en paralelo, pruebas de carga y falla parcial.
API de complemento flexible.
Soporte para pruebas de subprocesos múltiples.