1

Я использую версию весеннего теста 3.2.1.RELEASE и, в частности, объект MockMvc для тестирования моих контроллеров.Результат Spring-mvc + MockMvc + junit равен 200, но должен быть 404

Проблема в том, что когда объект MockMvc выполняет выполнение на несуществующей странице html, он возвращает статус 200, но мой браузер отображает статус 404 - это правильно, потому что страница не существует. Как я могу проверить статус 404? (Так как это состояние я ожидаю)

@Test 
public void testInvalidUrl() throws Exception { 
    mockMvc.perform(get("/invalidJSPFileName.html")) 
      .andExpect(status().isNotFound()) 
      .andExpect(forwardedUrl("/WEB-INF/jsp/invalidJSPFileName.jsp")); 
} 

Контролер теста:

@Controller 
@RequestMapping("/") 
public class IndexController { 
    @RequestMapping("*.html") 
    public void showIndex(){ 

    } 
} 

Резольвер:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

Каталог:

WEB-INF 
    jsp 
     index.jsp 

ответ

1

Ваш контроллер принимает все с суффиксом .html

@RequestMapping ("*. HTML")

Таким образом, ваш запрос должен быть найден.

Смежные вопросы