2012-05-08 6 views
0

다음 코드가 포함 된 Spring 유효성 검사기가 있습니다.테스트 A Spring Validator 메시지

errors.rejectValue("myFieldName", "errors.required", new Object[] { "My Field" }, "Field required"); 

errors.required 메시지가 선택되었는지 테스트하고 싶습니다. 나는 방법을 찾을 수 없었다. 지금까지 내가 jUnit에서 가지고있는 것은 :

FieldError fieldError = errors.getFieldErrors().get(0); 
assertEquals("myFieldName", fieldError.getField()); 
assertEquals("errors.required", fieldError.getCode()); 
//TODO: test that the message was picked up 

누군가가 전체 메시지를 잡는 방법을 알고 있습니까?

답변

0

해결책을 찾을 수있었습니다.

내 jUnit 테스트에서 나는 MessageSource에 연결합니다.

@Autowired 
private MessageSource messageSource; 

그럼 나는 편리한 방법을 썼다.

private String getConfiguredMessage(FieldError fieldError) { 
    return messageSource.getMessage(fieldError.getCode(), 
            fieldError.getArguments(), 
            Locale.US); 
} 

이 방법을 사용하면 구성된 메시지가 무엇인지 알 수 있습니다.

assertEquals("My Field is required.", getConfiguredMessage(fieldError)); 

이 솔루션이 실제로 오류 메시지를 "수신하지는 않지만"목적을 달성합니다.

앞으로 도움이되기를 바랍니다.

+0

기본 로캘이 영어가 아닌 시스템에서이 테스트가 실패합니다 – john16384