2010-04-22 4 views
0

I는 단위 테스트 내 SpringMVC를 다음과 같이 코드를 사용하여 컨트롤러 해요 :테스트 SpringMVC 컨트롤러

public void testParamValidation() { 
    MyController controller = new MyController(); 
    MockHttpServletRequest request = new MockHttpServletRequest(); 
    request.addParameter("foo", "bar"); 
    request.addParameter("bar", baz"); 
    ModelAndView mav = controller .handleRequest(request, new MockHttpServletResponse()); 
    // Do some assertions on mav 
} 

이 컨트롤러는 AbstractCommandController의 하위 클래스를, 그래서 매개 변수는 명령 빈에 바인딩 , 바인딩 또는 유효성 검사 오류는 Errors 인터페이스를 구현하는 객체에 저장됩니다.

테스트 중에 Errors에 액세스 할 수있는 방법을 찾을 수 없습니다. 가능한가요?

덕분에, 돈

답변

1

나는 다음과 같은 일을 할 내 컨트롤러의 유효성을 테스트합니다. 기본적으로 BindException을 사용하여 오류에 액세스합니다.

BindException ex = new BindException(commandObject, "commandName"); 
controller.onBindAndValidate(new MockHttpServletRequest(), commandObject, ex); 
assertEquals(1, ex.getErrorCount()); 
List<ObjectError> errors = (List<ObjectError>)ex.getAllErrors(); 
assertEquals("INVALID_COMMAND", errors.get(0).getCode()); 
관련 문제