spock integration
Spock para pruebas de integración (como servicios de descanso) y para pruebas funcionales (con selenio):
Exploramos sobre Burlarse, golpear y espiar en Spock en nuestro tutorial anterior.
En esto Serie completa de tutoriales de entrenamiento en Spock , hasta ahora cubrimos, escribiendo pruebas unitarias usando el marco Spock. Las pruebas unitarias, por lo general, prueban una sola clase con todos los puntos de integración o las llamadas externas se reemplazan por llamadas simuladas o apéndices.
Las pruebas de integración, por el contrario, prueban los puntos de integración entre 2 piezas. Por ejemplo, probar los contratos entre 2 servicios, probar la integración entre el servicio y la base de datos, etc.
En este tutorial, aprenderemos cómo usar Spock para Pruebas de integración (como servicios de descanso) y para prueba funcional . Por ejemplo , Integración de Spock con Selenium, etc.
Aquí hay un tutorial en video:
Lo que vas a aprender:
Integración Spring Spock
Intentemos entender esto con un ejemplo de cómo podemos integrar Spock con aplicaciones basadas en Spring Boot MVC.
plantilla de informe de resumen de prueba en excel
Aunque Spring tiene un rico conjunto de anotaciones y se integra bien con JUnit, Spock agrega o ayuda a agregar un enfoque de prueba de estilo BDD fácil de leer que, por lo tanto, hace que las especificaciones de prueba sean altamente legibles.
Sobre la aplicación
Usaremos una aplicación de inicio de arranque de primavera basada en Gradle, con un controlador basado en descanso que implementa un punto final.
Dependencias requeridas
Además de las dependencias de arranque de primavera, agregaremos la dependencia de compilación groovy habitual, así como una dependencia del núcleo de Spock. Otra dependencia basada en Spock es Spock-primavera , que permite que las especificaciones de Spock usen anotaciones basadas en Spring.
A continuación, se incluye la lista de dependencias necesarias:
- implementación 'org.springframework.boot: spring-boot-starter'
- testImplementation 'org.springframework.boot: spring-boot-starter-test'
- compila 'org.codehaus.groovy: groovy-all: 2.4.8'
- testCompile 'org.spockframework: spock-core: 1.2-groovy-2.4'
- testCompile grupo: 'org.spockframework', nombre: 'spock-spring', versión: '1.2-groovy-2.4'
Empezando
Comencemos con la prueba real.
En la primera prueba, verificaremos si el bean se crea para la clase de controlador que hemos agregado. Para ello, la aplicación debe iniciarse cuando se ejecuta la prueba.
Para lograr esto, agregaremos @ SpringBootTest anotación que garantiza la ejecución del contexto de la aplicación antes de que se ejecute la prueba.
A continuación se muestra el código de prueba:
|_+_|En el código anterior, puede ver que hemos utilizado @SpringBootTest anotación que asegura el inicio de ApplicationContext, antes de que se ejecute la prueba y también hemos cableado automáticamente el bean WebController según las anotaciones de Spring.
La prueba valida que el bean Webcontroller se instancia como parte del contexto de la aplicación.
Veamos otra prueba, donde llegaremos al punto final expuesto por el controlador web y validaremos el código de respuesta, así como el texto de respuesta, a través de las clases de prueba de Spring Framework, es decir, MockMvc y MockMvcRequestBuilders.
Consulte el código de prueba a continuación:
|_+_|Integración de Spock Selenium
Aquí hay un tutorial en video:
Ahora veamos un ejemplo de cómo podemos integrar pruebas basadas en Selenium usando Spock. Estos no requieren ninguna otra dependencia específica, pero en general, puede utilizar las formas existentes para organizar las pruebas de selenio utilizando BDD de manera más eficaz.
En esto Ejemplo, veremos una prueba de selenio simple a través de ChromeWebDriver que intenta buscar una palabra clave en la búsqueda de Google y verificar el título de la página de resultados de búsqueda.
|_+_|Observe cómo hemos declarado la instancia de webdriver para ChromeDriver y cómo la usamos dentro de la especificación.
Además, en un paso dado, hemos declarado / definido todos los elementos web que necesitaríamos para la ejecución de la prueba.
El marco Spock también se puede integrar y usar con el marco de automatización existente y podemos simplemente reemplazar las pruebas basadas en Java / JUnit con Spock para utilizar el poder de la programación declarativa en Groovy.
Conclusión
En este tutorial, exploramos las diferentes formas de integrar las pruebas basadas en Spock con otros marcos y tipos de pruebas, como las pruebas de integración y las pruebas End-2-End.
Vimos ejemplos de integración de Spock con el marco Spring y pruebas de integración basadas en selenio. Similar a estos, Spock también se puede usar para escribir pruebas con clientes Rest para pruebas de integración de API basadas en REST.
¡Prepárese rápidamente para una entrevista de Spock con su próximo tutorial, que cubre una lista de las preguntas más importantes de la entrevista de Spock!
PREV Tutorial | SIGUIENTE Tutorial
Lectura recomendada
- Escribir pruebas unitarias con Spock Framework
- Preguntas de la entrevista de Spock con respuestas (las más populares)
- Spock Mocking and Stubbing (ejemplos con tutoriales en video)
- Pruebas basadas en datos o parametrizadas con Spock Framework
- Tutorial de Spock: Prueba con Spock y Groovy
- Integración de selenio con JMeter
- Las diferencias entre pruebas unitarias, pruebas de integración y pruebas funcionales
- Pruebas funcionales versus pruebas no funcionales