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):

Screenshot Eclipse

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.

blog comments powered by Disqus