1

我使用 spring-test 框架版本 3.2.1.RELEASE,特别是 MockMvc 对象来测试我的控制器。

然而,问题是当 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
4

1 回答 1

1

您的控制器接受后缀为 .html 的任何内容

@RequestMapping("*.html")

因此,应该找到您的请求。

于 2013-05-26T08:12:59.140 回答