Tenemos una aplicación construida usando Spring/Hibernate/MySQL, ahora queremos probar la capa DAO, pero aquí hay algunas deficiencias que enfrentamos.Probando Hibernate DAO, sin construir el universo a su alrededor
Considere el caso de uso de varios objetos conectados entre sí, por ejemplo: El libro tiene páginas.
- El objeto de página no puede existir sin el libro ya que book_id es obligatorio FK en Page.
- Para probar una página, tengo que crear un libro.
Este sencillo uso es fácil de administrar, pero si comienza a construir una Biblioteca, hasta que no cree todo el universo que rodea el Libro y la Página, ¡no podrá probarlo!
Así que para probar la página;
- Crear biblioteca
- sección Crear
- Crear Género
- Crear Autor
- Crear libro
- Crear página
- Ahora página de prueba.
Hay una forma fácil de pasar esta "creación del universo" y simplemente probar el objeto de la página de forma aislada. También quiero poder probar los HQL relacionados con Page. por ejemplo:
SELECT new com.test.BookPage (book.id, page.name) FROM Book book, Page page.
JUnit se supone para funcionar de forma aislada, por lo que tengo que escribir el código para construir todos los objetos de apoyo en el caso de prueba para crear la página. Cualquier consejo sobre cómo acelerar el proceso.
Edit: Spring sigue la filosofía de retrotracción de la transacción después de que se hayan ejecutado las pruebas, por lo que revierte todos los cambios. Se esperan cambios en el esquema a medida que nos desarrollemos más, quiero poder probarlo contra el db de producción (¡copia de seguridad!) De forma regular.
por qué wiki de la comunidad? – roufamatic