В моем весеннем загрузочном проекте я создал класс, расширяющий HandlerMethodReturnValueHandler
со следующим кодом (упрощенно для краткости)
public class ModelResolver implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler {
@Override
public boolean supportsReturnType(MethodParameter returnType) {
return true;
}
@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
//Some code
}
}
Затем в моем классе Config сделал:
@Configuration
@EnableAutoConfiguration
public class Config implements WebMvcConfigurer {
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {
handlers.add(new ModelResolver());
}
}
Затем в моем методе интеграционного теста просто создали mockMvc, подобный следующему
MvcResult mvcResult = mockMvc.perform(post(BASE_URL + "create"))
.andExpect(status().isBadRequest())
.andReturn();
, но handleReturnValue
не вызывается.
Я ставлю точки останова в addReturnValueHandlers
конфигурации, а также внутри supportsReturnType
и handleReturnValue
.
Один внутри addReturnValueHandlers
пойман, но ни supportsReturnType
, ни handleReturnValue
не пойман!
Ребята, у вас есть идеи?