Création d'un environnement de test JUnit avec JNDI
Dans un projet, il est important de pouvoir créer des tests unitaires JUnit. Dans le cas d'un projet Web, la connexion à la base de donnée est réalisée avec JNDI. Dans l'environnement de test, il faut alors disposer d'un environnement JNDI. Pour cela, on peut utiliser Simple-JNDI.
Voici en une capture d'écran toutes les informations pour mettre en place ceci (cliquer sur l'image pour voir en taille réelle):
test/JNDITest.java
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.junit.Assert;
import org.junit.Test;
public class JNDITest {;
@Test
public void testJNDI() throws Exception {;
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
DataSource ds = (DataSource) envCtx.lookup("jdbc/myDataSource");
Assert.assertNotNull(ds);
}
}
test/jndi.properties : doit être à la racine du classpath lors des tests, mais pas lors de l'exécution normale du programme
java.naming.factory.initial=org.osjava.sj.SimpleContextFactory org.osjava.sj.root=test/resources/simple-jndi/ org.osjava.sj.delimiter=/ org.osjava.sj.space=java:comp/env
test/resources/simple-jndi/jdbc/myDataSource.properties
type=javax.sql.DataSource driver=org.gjt.mm.mysql.Driver url=jdbc:mysql://localhost/testdb user=testuser password=testing
Consulter le manuel de simple-jndi pour plus d'informations sur la configuration.
