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.