본문 바로가기

Mock Object 를 사용해서 쉽게 테스트 하기

최근에 IBM developerWorks의 스크린캐스트(=동영상강좌)를 많이 봐야할 일이 있었습니다. 한꺼번에 보다 보니 당연히 힘들더군요.

그중에 심드렁한 내 눈과 귀를 번쩍트이게 하는 강좌가 있었습니다. 바로 'Mock Object 를 사용해서 쉽게 테스트 하기' 인데요. 테스트 주도 개발이 익숙하지 않은 초중급 개발자분들이 한번 짬내서 보면 개념잡는데 도움이 많이 되는 강좌입니다.

Mock Object는 테스트 하기 힘든 특정 자원, 예를들면 '데이터베이스'에 의존하지 않고도, 비슷한 기능을 흉내내게 해주는 가상 객체입니다. 데이터베이스등의 특정 자원에 의존하는 객체가 Mock Object를 쓰면 이제 가상 객체를 쓰던 진짜 데이터베이스와 연결됨과 상관없이 기능을 수행 합니다. 저 강좌에서는 데이터베이스 자원에 의존하지 않고도 독립적으로 깔끔하게 테스트할 수 있는 방법을 설명합니다. 부모에게 의존하지 않고 떳떳하게 독립하는 자식처럼, 떳떳하게 독립적이고 멋진 프로그래밍을 할 수 있는 방법을 알려줍니다.

참고로 저같은 경우 테스트 하기 힘든 특정 자원이 데이터베이스도 있지만 네트워크 프로그래밍에서는 네트워크/서버 자원도 있다는 것도 알게 되었습니다. 대상 네트워크/서버가 살아 있어야 테스트 가능 하거든요. 이런 경우 네트워크/서버 자원에 의존하지 않고도 어떻게 자동 테스트 할수 있는지 꽤 난감하더군요. 네트워크 프레임워크인 '아파치 미나' 소스에 단서가 될만한 테스트 클래스들이 있어서 다시한번 확인해봐야 겠습니다. 네트워크/서버 자원도 Mock Object를 써서 테스트 하는 방법을 확실히 알게 되면 다시 한번 포스팅 해보겠습니다. ^ ^