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 클래스의 메소드가 각각 어떻게 사용되는지만 익히면 된다.

'개발노트 > Spring' 카테고리의 다른 글

[링크]Spring 3.0 Overview 번역문  (0) 2010.06.09
[펌]DispatcherServlet의 디폴트 대체(fallback) 전략?  (0) 2010.06.01
Spring MVC 따라하기 Step1.  (0) 2010.04.29
예제 싸이트  (0) 2010.04.27
POI - Excel 변환용 API  (0) 2010.04.07