Pregunta

Después de corro un montón de pruebas de selenio (junit4) utilizando Maven, me gustaría hacer una base de datos de limpieza (cosas que quitan insertan etc). Es un proyecto mayor que se ejecuta en la tapicería / primavera / Hibernate y una base de datos existente. Me gustaría hacer la limpieza en un método anotado @After -., Pero la inyección de la DAO de / Agentes / SessionFactory qué no funciona

La prueba es el siguiente: corro (mvn jetty:run-war) la aplicación en una consola, y empezar las pruebas en otra consola (mvn test) - se accede a la aplicación en el servidor local:. 8080

¿Fue útil?

Solución

Varios enfoques posibles:

  1. DBUnit , que está diseñado para devolver una base de datos a un estado de conocimientos entre las pruebas.
  2. Wrap cada prueba en una transacción de base de datos con un bloque try{} finally{} donde los finalmente deshace la transacción.
  3. Usar una base de datos para probar estrictamente y no se preocupe de ello. Haga que sus pruebas de crear una identificación única / valores con nombre cada vez por lo que no tiene conflictos, pero por lo demás no tome ninguna acción.

Otros consejos

Yo prefiero utilizar

@Transactional

anotation encima de declaración de método. Se ejecuta rollback después de cada prueba. Funciona bien para mí.

Por ejemplo:

@Test
@Transactional  
public void simpleTest(){    
    // your logic here     
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top