728x90
반응형

이전 글에 이어서 좀 더 편하게 테스트를 해보자.

뭘 만들지간에 스프링프레임워크를 이용한 개발이 진행되다보면 테스트에 있어 불리한 면… 내지는 불편한 면이 다소 있다. 그중에 가장 큰 문제는 커다란 프로젝트를 테스트 할경우, 일반적으로 서버를 완전히 내렸다가 다시 올려야 되기 때문에 거기에 소요되는 시간이 상당하다. 여기서 발생하는 빡치는 상황은 이런것이다.

  1. 서비스 코드를 한 줄.. 아니 따지고 보면 오타 나서 단 한 글자 고쳤다.
  2. 구동중인 톰캣을 완전히 내린다.
  3. 톰캣을 다시 부트한다. (프로젝트가 꽤 거대해서 약 20초간 부트했다고 보자, 조금 사양이 딸리는 노트북일 경우는 더 걸리는 케이스도 있을 것이다.)
  4. 웹페이지로 접속해서 URL로 들어가 페이지를 찾는다. (권한 처리된 업무화면일경우 로그인까지 포함해서 정규 코스대로 웹 페이지를 이동할 것이다.)
  5. 변경한 서비스를 구동하기위해 웹페이지 내에 구성된 컨트롤들에 값을 입력한다.
  6. 서비스를 호출하는 이벤트 컨트롤에 이벤트를 발생시킨다. (버튼 클릭 등)
  7. 서비스가 잘 작동하였는지 확인한다.

글로만 쓰려고해도 이렇게 개빡치는 상황이 발생한다. 더군다나 7단계의 메커니즘이 프로젝트가 끝나고 우리가 그 프로젝트에서 도망쳐 나올때까지… 아니 어쩌면 도망쳐 나온 이후에도 반복될 수도 있다.(업계를 뜨던지 해야지… 아냐 그래도 전화올거야..) 우린 조금 더 스마트하고 간편하게, 또 빠르고 정확하게 테스트 될 수 있도록 해보자.

다시 본론으로 돌아와서, 위의 7단계에 걸친 테스트는 다음과 같이 줄어들 수 있다.

  1. junit과 spring-test를 이용하여 테스트할 수 있는 테스트 클래스를 작성한다. (프로젝트 초기 작성)
  2. 코드에서 에러가 발생하여 코드를 수정한다.
  3. 이클립스에서 junit을 실행해버린다.
  4. 잘 고쳐졌는지 확인한다.

4단계로 줄었을 뿐만아니라 프로젝트 초기에 테스트 클래스만 잘 작성해둔다면, 1단계는 더 이상 안봐도 된다. 물론 junit으로 테스트 하였다 하더라도, 웹 페이지에서 실제 사용자가 쓰듯이 한 번 굴려보는 테스트를 진행해야 되겠지만 (이건 벗어날 수 없는 부분이겠지만….) 어느정도 개발단계에서 버그에 자유로워질 수 있다. 또한, 실제로 그렇게 되어왔고 그렇기 때문에 junit이 수 많은 개발자들에게 사용되어지는 이유일것이다.

그럼 이제 테스트 클래스를 작성해보자. 설정등은 위에도 링크해놨지만 이전 글을 통해서 사전설정을 마치고 오도록 하자. 뭐 이번 포스트도 클래스 한 개 정도로 끝날 것 같지만..

 

boardService에 대한 import 구문은 개인적인 이유로 제거시켰으니 에러가 발생해도 당황하지 말고 잘 대응하자. 각각의 설명들은 주석으로 달아놨으니 찾아서 보도록하고, 좀 더 다양한 기능등을 원한다면 test와 관련된 검색을 진행하여 찾아보자.

예를 들어, Controller를 테스트 하고 싶다거나, 정말로 브라우저에서 서버로 보내진 리퀘스트처럼 인터셉터를 지난다거나 하는 테스트를 하고싶다거나.. 그럴때 사용할 검색어는 ‘mokito’ ‘mock up’ ‘mock’ 등이 있다. mokito는 mock과 관련된 테스트용 프레임워크로 사용법이 대단히 많은거 같으니 다른 유능한 블로거의 포스트를 검색해서 참조해보자.

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,