Spring JNDI Mock

일반적인 웹어플리케이션은 WAS에서 JNDI를 통해서 데이터베이스 커넥션을 가져온다.
이런 방법이 편한듯 하면서도 형상관리 서버에서 소스를 가져올 때 매번 WAS 설정을 해야 해서 귀찮았다.

테스트 코드에 관심을 가지면서 가장 문제된 부분이 데이터베이스 커넥션인데 WAS를 기동하지 않은 상태에서 JNDI를 가져오는게 쉽지 않았다.
별별 이상한 방법(?, 고민[각주:1], 방법1[각주:2], 방법2[각주:3])을 사용해서 소스를 리팩토링했는데 스프링 Mock에 포함된 SimpleNamingContextBuilder 를 알고 나서 반나절동안 패닉 상태에 빠졌다.

그냥 이 코드 한줄이면 JNDI를 WAS에 종속적이지 않게 lookup 할 수 있었다.

- 오늘의 교훈
역시 사람은 배워야 한다.
모르면 손발이 고생한다.
  1. 복잡한 기존 소스를 테스트 가능하게 리팩토링하기 [본문으로]
  2. 테스트 가능한 Connection 을 사용하도록 리팩토링하기 [본문으로]
  3. 테스트 어려움 - 싱글톤 클래스 [본문으로]