Bonjour,
J'utilise JUnit 4, Glassfish 3.01, Mysql
J'ai un persistent.xml comme suit:
J'ai donc déclarer dans mon glassfish de prod les liens jdbc qui vont bien et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="ACS" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>jdbc/acs</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> </properties> </persistence-unit> </persistence>
ça fonctionne bien.
Mais comme tout bon développeur je cherche à faire des tests unitaires pour me permettre de valider plus facilement certaine partie de code.
Je me suis donc mis à créer des tests qui vérifient mes EJBs. Pour cela j'utilise le glassfish-embedded-all.
mon test unitaire :
déclenche une exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 { EJBContainer ejbC = EJBContainer.createEJBContainer(); Context ctx = ejbC.getContext(); .. }
Caused by: javax.naming.NamingException: Lookup failed for 'jdbc/acs' in SerialContext [Root exception is javax.naming.NameNotFoundException: acs not found]
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
at com.agileacs.rpcmethod.invoke.InformInvokeTest.testInvoke(InformInvokeTest.java:68 at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:111)
Je me pose donc la question de savoir comment déclarer le système pour que je puisse tester unitairement les accès à la bdd l'idéal pour moi serait d'avoir une instance de base pour la prod et une instance de base pour le test.
QQ a t il une idée ou un exemple ?
Partager