Question

Après avoir couru un tas de Sélénium essais (junit4) en utilisant Maven, je voudrais faire une base de données de nettoyage (enlever les choses ils inséraient etc.). Il est un ancien projet en cours d'exécution sur Tapestry / Spring / Hibernate et une base de données existante. Je voudrais faire le nettoyage dans une méthode annotée de @After -. Mais l'injection de DAO de / gestionnaires / SessionFactory ne fonctionne pas

Le test va comme ceci: je lance (mvn jetty:run-war) l'application dans une console, et commencer les tests dans une autre console (mvn test) - il accède à l'application sur localhost:. 8080

Était-ce utile?

La solution

Plusieurs approches possibles:

  1. DBUnit , qui est conçu pour retourner une base de données à un état de savoir entre les tests.
  2. Enveloppez chaque test dans une transaction de base de données avec un bloc de try{} finally{} où les enfin annule la transaction.
  3. Utiliser une base de données strictement pour tester et ne vous inquiétez pas à ce sujet. Faites vos tests de créer identifié de manière unique / valeurs nommées à chaque fois que vous n'avez pas les conflits, mais sinon ne prennent aucune mesure.

Autres conseils

Je préférerais utiliser

  

@Transactional

anotation ci-dessus déclaration de méthode. Il fonctionne rollback après chaque test. Ça fonctionne bien pour moi.

Par exemple:

@Test
@Transactional  
public void simpleTest(){    
    // your logic here     
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top