Spock es un marco de pruebas de Java capaz de manejar el ciclo de vida completo de un programa informático. [ 2 ]
Historia
La herramienta fue creada inicialmente en 2008 por Peter Niederwieser, un ingeniero de software de Gradleware. Otro colaborador de Spock es Luke Daley (también de Gradleware), creador del popular marco de pruebas Geb.
Características
Spock es un marco de trabajo para pruebas, especificaciones y simulación (motor de pruebas).
Las pruebas están escritas en el lenguaje de programación Groovy y, por lo tanto, pueden utilizarse para realizar pruebas unitarias tanto en código Groovy como en Java, así como para crear pruebas funcionales. La sintaxis utiliza el DSL de Groovy y algunos conceptos de BDD, lo que permite escribir código conciso y fácil de mantener.
El marco de trabajo admite pruebas combinatorias y basadas en datos. También incluye de forma predeterminada simulaciones, sustituciones y pruebas basadas en interacciones.
Estructura del código de prueba
En Spock, las clases de prueba se llaman especificaciones. Extienden la Specificationclase de la biblioteca y pueden contener
- campos (de instancia, estáticos y compartidos)
- fixtures (métodos de fixture que configuran y limpian el estado)
- características (métodos de características)
- ayudantes (métodos auxiliares)
El código de los métodos de características se divide en bloques lógicos utilizando el estilo Gherkin .
Los bloques given y setup (que proporcionan la misma funcionalidad) se utilizan para configurar el estado inicial.
Los bloques " when " describen las acciones, y los bloques " then " las verificaciones de los resultados de las acciones, por lo que cada par " when"/then encapsula un paso de prueba.
El bloque expect combina la funcionalidad de los bloques when . Esto simplifica el código de prueba para casos sencillos.
El estado se puede restaurar en el bloque de limpieza . El bloque adicional no tiene significado propio y se utiliza para subdividir los pasos en subpasos de la misma naturaleza.
Los bloques `where` y `filter` permiten especificar los datos de entrada y los esperados. Los valores se pueden definir mediante la sintaxis de tabla o como flujos de valores. Permite la implementación de pruebas basadas en datos, incluido el cálculo automático de productos cartesianos .
Todos los bloques, excepto los de tipo "where" y "filter" , pueden tener etiquetas que funcionan como comentarios y son visibles en los informes de prueba.
Ejecución de pruebas
Spock utiliza el ejecutor JUnit, y las especificaciones pueden ser ejecutadas por diversas herramientas de compilación e IDE, por ejemplo, IntelliJ IDEA .
El framework admite la ejecución en paralelo, gracias a su implementación en la plataforma JUnit. Puede utilizarse tanto a nivel de especificación como de funcionalidad y se configura mediante anotaciones.
Además, las pruebas se pueden integrar con el Spring TestContext Framework .
Informes
La extensión Spock Reports (de Renato Athaydes) permite generar informes de Spock. Admite CSS personalizado y la copia de bloques de código de las especificaciones, de modo que el lector puede ver con exactitud qué se ejecutó durante una prueba.
Véase también
- JUnit , un marco de automatización de pruebas para el lenguaje de programación Java.
- TestNG , un marco de automatización de pruebas para el lenguaje de programación Java.
- Mockito , un framework de simulación
- Geb (marco de pruebas) , una solución de automatización de navegadores
Referencias
- Documentación oficial de Spock
- Software multiplataforma
- Herramientas de desarrollo Java
- Java (plataforma de software)
- marcos de pruebas unitarias
- Software que utiliza la licencia Apache.
- Esbozos de biblioteca informática