Saltar al contenido

Spring @Transactional no funciona en la prueba JUnit?

Solución:

Por referencia, las transacciones son no persistió en contextos de prueba en Spring. Como se mencionó, aunque es inusual, si aún necesita hacerlo, puede usar @TransactionConfiguration y @Rollback para cambiar el comportamiento predeterminado.

Los DAO no deben ser transaccionales. ¿Cómo puede saber un DAO si debe participar en una transacción mayor?

Los servicios deben poseer transacciones en la arquitectura en capas típica de Spring.

Es típico ejecutar sus pruebas unitarias para bases de datos de tal manera que se reviertan. No desea que sus pruebas alteren la base de datos, a menos que haya configurado una base de datos de prueba que pueda eliminar y recrear a voluntad.

La pregunta debería ser: ¿Cómo sus pruebas, tal como están escritas, confirman la transacción? Si nunca se compromete, nunca verá los registros.

En la sección “Pruebas” de los documentos, puede utilizar la

 @Rollback(false) 

anotación si no desea que SpringJUnit4ClassRunner revierta sus transacciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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