Bonjour, je suis nouveau dans le developpement java, je suis en train de mettre en place des tests unitaires sur mes classes vo de java :
j'utilise dans un applicationcontext.xml les beans suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <bean id="monDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.h2.Driver" /> <property name="url" value="jdbc:h2:file:c:/dev/work/db;AUTO_SERVER=TRUE" /> <property name="username" value="monuser" /> <property name="password" value="monmdp" /> </bean> <bean id="maSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="monDataSource" /> <property name="packagesToScan" value="fr.blabla.blabla2.*.domaine"/> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">create</prop> <prop key="hibernate.validator.apply_to_ddl">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop> </props> </property> </bean>
a noter la propriétéafin que la base soit recréée systématiquement a cause de modification récurrente de la base, même de modification sur des nom de tables ou champ existant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <prop key="hibernate.hbm2ddl.auto">create</prop>
Pour mes tests, j'utilise une base de test xml injecté, grace a des opérations de setupqui fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part testDatabaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
Sur mes tests eux même, je passe par un XmlBeanFactoryqui fonctionne bien aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part protected XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
Le problème, c'est que j'ai l'impression que le test m'injecte bien le jeu de test, mais qu'il passe ensuite le create de ma propriété hibernate, si bien que la base est recréée après l'injection du jeu de test.
Pour preuve, si je sais que ma base est ok, et que je met un, mes tests unitaires sont impeccables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <prop key="hibernate.hbm2ddl.auto">update</prop>
Est ce qu'il existe une solution pour que hibernate me recrée ma base, puis que mon jeu de tests soient injecté par la suite ?
Partager