MockMvc: ожидаемый URL-адрес для переадресации: ‹/WEB-INF/views/layout.vm›, но был: ‹null›

У меня есть приведенная ниже конфигурация Velocity как для теста, так и для основного в моем весеннем приложении mvc:

@Bean
public VelocityConfigurer velocityConfig(){
    VelocityConfigurer velocityConfig = new VelocityConfigurer();
    velocityConfig.setResourceLoaderPath("/WEB-INF/views/");
    return velocityConfig;
}

@Bean
public VelocityLayoutViewResolver viewResolver(){
    VelocityLayoutViewResolver viewResolver = new VelocityLayoutViewResolver();
    viewResolver.setCache(true);
    viewResolver.setLayoutUrl("layout.vm");
    viewResolver.setPrefix("");
    viewResolver.setSuffix(".vm");
    return viewResolver;
}   

Это работает правильно, когда я развертываю WAR и все мои MockMvcResultMatchers в тесте, кроме `forwardedUrl, который возвращает null:

@Test
public void testHome() throws Exception{
    mockMvc.perform(MockMvcRequestBuilders.get("/"))
        .andExpect(MockMvcResultMatchers.status().isOk())
        .andExpect(MockMvcResultMatchers.view().name("index"))
        .andExpect(MockMvcResultMatchers.forwardedUrl("/WEB-INF/views/layout.vm"))
        .andExpect(MockMvcResultMatchers.model().attribute("myData", Matchers.is(Matchers.not(Matchers.empty()))));

Соответствующий тестируемый контроллер имеет следующее начало:

@RequestMapping({"/index", "/"})
public ModelAndView home(){

Трассировка стека начинается:

java.lang.AssertionError: Forwarded URL expected:</WEB-INF/views/layout.vm> but was:<null>
    at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:60)
    at org.springframework.test.util.AssertionErrors.assertEquals(AssertionErrors.java:89)
    at org.springframework.test.web.servlet.result.MockMvcResultMatchers$1.match(MockMvcResultMatchers.java:93)
    at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:152)
    at com...

Почему перенаправленный URL-адрес неверен? Это проблема с MockMvc или настройкой скорости?


person user1561108    schedule 18.03.2016    source источник
comment
где сопоставление / с layout.vm?   -  person Braj    schedule 18.03.2016
comment
Я полагаю, поведение Spring MVC по умолчанию - см. комментарий к более раннему вопросу - layout-vm#comment59542084_35937701" title="ошибка org Apache Velocity ResourceManager не может найти макет ресурса vm%23comment59542084_35937701"> stackoverflow.com/questions/35936650/   -  person user1561108    schedule 18.03.2016
comment
Вот тот же вопрос   -  person Braj    schedule 18.03.2016
comment
это не та проблема, что у меня   -  person user1561108    schedule 18.03.2016