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/