JavaでJUnitを使って、DataSourceを使用するクラスをテストしたい。
どうやら、[JUnit JNDI DataSource helper package][1] を使えば、DataSourceが使えるらしい。
1. [JUnit JNDI DataSource helper package][1] をダウンロードし、展開する。
2. jrunittesthelper.jar を WEB-INF/lib にコピーする。
3. jndi_unit_test_helper.properties を適当なフォルダ(ここでは WEB-INF)にコピーする
4. jndi_unit_test_helper.properties を編集する。
こんな感じで使える。
public static void main(String[] args) throws NamingException, IOException, SQLException {
JNDIUnitTestHelper.init(“WEB-INF/jndi_unit_test_helper.properties”);
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(JNDIUnitTestHelper.getJndiName());
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(“select DEPTNO, DNAME from DEPT”);
while (rs.next()) {
System.out.println(rs.getInt(“DEPTNO”));
System.out.println(rs.getString(“DNAME”));
}
rs.close();
stmt.close();
}
参考
* [java/JNDIの偽装 – kensuke][2]
[1]: http://www.javaranch.com/codebarn.jsp
[2]: http://www.wikiroom.com/kensuke/?java%2FJNDI%A4%CE%B5%B6%C1%F5