1

我使用spring-test framework版本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」)

所以,你的請求應被找到。