Buenas prácticas haciendo pruebas con TestNG

TestNG es una herramienta similar a JUnit para probar aplicaciones y aporta algunas funcionalidades extra. Os presento algunas recomendaciones a la hora de usarla:

  • Definir conjuntos de pruebas en testSuites en ficheros xml. Así se podrá probar sólo una parte de la aplicación, comprobar funcionalidad mínima (happy path), etc.
  • Separar pruebas unitarias (comprueban una funcionalidad concreta) de las de integración (prueban varios elementos). Así será más fácil diagnosticar dónde se producen los errores.
  • Documentar en el javadoc de cada método de test los pasos que ejecuta y los resultados esperados. Así será más fácil arreglarlo cuando falle por un cambio en la aplicación.
  • Indicar los datos en ficheros de xml o properties en lugar de en el código Java. Normalmente se repiten los datos en múltiples tests y así sólo habrá que cambiarlos en un sitio.
  • No capturar excepciones en los tests: si algo falla debería saltar la excepción y cancelarse el test con errores.
  • Integración continua: lanzar todos los tests al desplegar una versión para comprobar que sigue funcionando todo lo de la versión anterior.
  • Crear una clase DefaultTestSet de la que extiendan las clases que contienen tests. En ella se crearían los objetos necesarios, se leerían los ficheros de configuración, etc.
  • Usar los métodos @before y @after para agrupar pasos que se repitan al principio y al final de todos los métodos de una clase. Así se evita repetir código, y cuando hay que hacer cambios sólo se modifica en un lugar.

¿Se os ocurren otras recomendaciones? Podéis compartirlas en los comentarios ;-)

Y recuerda que puedes suscribirte y recibir estos artículos: [mc4wp_form]

Rafael Borrego

Ingeniero informático especializado en startups y en ayudarles a crecer

Facebook Twitter LinkedIn 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>