xUnit es el nombre colectivo de una familia de marcos de pruebas unitarias cuya estructura y funcionalidad se basan en SUnit , que fue diseñado para el lenguaje de programación Smalltalk . SUnit , desarrollado por Kent Beck en 1998, fue escrito en un estilo altamente estructurado y orientado a objetos , ganó gran popularidad y se ha adaptado a muchos otros lenguajes. Los nombres de los marcos en esta familia se forman de manera similar a "SUnit", generalmente reemplazando la "S" con la primera letra (o varias primeras) en el nombre del lenguaje previsto (" JUnit " para Java , " NUnit " para el plataforma de software .NET , etc.). Una familia de dichos marcos con una arquitectura común se conoce comúnmente como "xUnit".
Todos los marcos de la familia xUnit tienen los siguientes componentes básicos de arquitectura, que pueden variar ligeramente en diferentes implementaciones [1] .
Un módulo es un programa ejecutable que ejecuta pruebas implementadas con el marco y muestra información sobre su progreso [2] .
Los casos de prueba (escenarios/casos de prueba) son los elementos básicos de las pruebas unitarias.
Una configuración de prueba (también denominada contexto) es un conjunto de condiciones predefinidas o estados de objetos necesarios para ejecutar una prueba. El desarrollador debe establecer una configuración conocida antes de ejecutar cada prueba y luego volver a la configuración original una vez que se completa la prueba.
Un conjunto de pruebas es un conjunto de pruebas que comparten una configuración común. El orden en que se ejecutan las pruebas no debería importar.
Cada prueba se ejecuta de acuerdo con el siguiente esquema:
configurar (); /* La prueba 'contexto' se prepara primero */ ... /* Cuerpo de prueba: el script de prueba se especifica aquí */ ... derribo (); /* Después de pasar la prueba (independientemente de su resultado), el contexto de la prueba se "borra" */El módulo que realiza la prueba debe generar los resultados en uno o más formatos específicos. Además del texto normal legible por humanos, los resultados a menudo se muestran en formato XML .
Una aserción en una prueba es una función o macro que prueba el comportamiento o estado de la unidad bajo prueba. A menudo, una afirmación es una prueba para ver si algún parámetro del módulo es igual o no al resultado esperado. Si no se pasa la prueba, se produce la falla de todo el script de prueba y (si es necesario) una excepción que detiene el script sin pasar a la siguiente instrucción.
Existen marcos con una arquitectura específica de xUnit para muchos lenguajes de programación y plataformas de desarrollo. Ejemplos:
Otros ejemplos: