Solución:
¿Existe alguna forma de revertir las transacciones desencadenadas por las solicitudes realizadas a través del
RestTemplate
en un método de prueba?
No. No es posible revertir las transacciones administradas por su aplicación implementada.
Cuando anota su clase de prueba con @WebIntegrationTest
y @SpringApplicationConfiguration
, Spring Boot lanzará un contenedor de Servlet integrado e implementará su aplicación en él. Entonces, en ese sentido, su prueba y aplicación se ejecutan en dos procesos diferentes.
los Spring TestContext Framework solo gestiona transacciones gestionadas por Test. Así, la presencia de @Transactional
en su clase de prueba solo influye en las transacciones administradas por pruebas locales, no en las de un proceso diferente.
Como alguien más ya mencionó, una solución alternativa sería restablecer el estado de la base de datos una vez que se haya completado la prueba. Para ello tienes varias opciones. Consulte la sección Ejecución de scripts SQL del manual de referencia para obtener más detalles.
Saludos,
Sam (autor del Spring TestContext Framework)