[출처] 머찐아빠 블로그
annotation을 이용한 jUnitTest를 하려면 이것저것 신경쓸게 많다.
하지만 EasyMock을 사용하면 그 신경쓸꺼리를 많이 덜게 해준다.
특히 Controller 같은 경우 request, response등의 Mockup 객체가 있어야 하기에 더더욱 그렇다.
세팅방법은 간단하다. EasyMock의 클래스/메소드 사용법만 익히면 된다.
1. 관련 jar 파일을 임포트한다.
처음 easymock-3.0.jar(현재 최신판)만 import 하니 관련 클래스가 없다는 다음의 메시지가 뜬다.
java.lang.NoClassDefFoundError: org/objenesis/ObjenesisHelper --- 이하 생략 ---- |
그래서 찾아보니 jar 파일이 하나 더 필요하단다.
이 jar를 추가하니 에러가 없어졌다.
2. Test하려는 Controller class 옆에 ~ControllerTest라는 아무이름으로 클래스 하나 생성한다.
3. @Before, @Test 어노테이션을 붙인 메소드를 만든다.
public class RequestMappingTest { private MockHttpServletRequest request; private MockHttpServletResponse response; private MyController controller; private AnnotationMethodHandlerAdapter adapter; @Before public void setUp() { controller = EasyMock.createNiceMock(MyController.class); adapter = new AnnotationMethodHandlerAdapter(); request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); } @Test public void testname() throws Exception { request.setRequestURI("/users"); controller.foo(response); EasyMock.expectLastCall().once(); EasyMock.replay(controller); adapter.handle(request, response, controller); EasyMock.verify(controller); } } 소스출처 : http://www.olivergierke.de/wordpress/2009/05/unit-testing-annotation-based-spring-mvc-controllers/ |
4. EasyMock 클래스의 메소드가 각각 어떻게 사용되는지만 익히면 된다.
EasyMock 사용법 참조 : http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev:tst:mock_support#mock_라이브러리_사용