bouil.org

Google Reader Shared

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.