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”)

所以,你的请求应被找到。