spring-mockによるJNDIのテスト

Spring Frameworkに同梱されているspring-mock.jarを用いると,こんな感じでDataSourceを取得するJNDIの偽装ができる(振る舞い的にはmockっちゅうよりfakeかな).

SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder();
DataSource ds = new DriverManagerDataSource(...);
builder.bind("java:comp/env/jdbc/myds", ds);
builder.activate();

SimpleNamingContextBuilderとSimpleNamingContextってのがタネなんだけど,この人たち別にspringに依存することなくJNDIのfakeを行っているみたい(一箇所StringUtilsだけ使っているので外すのは簡単).


DataSource限定だけどJNDIのlookupを偽装する方法としてイケていると思う.
とても参考になりました.ごちそうさま.
http://cvs.sourceforge.net/viewcvs.py/springframework/spring/mock/org/springframework/mock/jndi/