如何在Spring MVC测试框架中测试静态资源的配置

时间:2015-11-14 10:33:43

标签: java spring-mvc testing spring-test

我使用Spring MVC测试框架进行Spring控制器的集成测试。以下是我的Controller及其Test当前使用的代码。

@RequestMapping("/login")
public ModelAndView goLogin(){
    ModelAndView mv = new ModelAndView("login");
    mv.addObject("loginForm", new loginForm());
    return mv;
}

@Test
public void goLoginPage() throws Exception{
    this.mockMvc.perform(get("/login")).andExpect(status().isOk())
    .andExpect(forwardedUrl("/WEB-INF/template/default.jsp"))
    .andExpect(model().attribute("loginForm", any(loginForm.class)));   
}

我使用Apache Tiles作为视图框架。以下是loginForm页面的布局配置代码。

<definition name="login" template="/WEB-INF/template/default.jsp">
    <put-attribute name="title" value="Login - Spring Web Testing"></put-attribute>
    <put-attribute name="header" value="/WEB-INF/tile/header.jsp"></put-attribute>
    <put-attribute name="body" value="/WEB-INF/tile/login_body.jsp"></put-attribute>
    <put-list-attribute name="javascripts">
        <add-attribute value="/static/script/jquery-2.1.4.js"></add-attribute>
    </put-list-attribute>
    <put-list-attribute name="stylesheets">
        <add-attribute value="/static/style/general.css" />
    </put-list-attribute>
</definition>

如何测试Javascript配置中的stylesheetApache Tiles文件是否正确配置?如果找不到文件,则会出现错误。

1 个答案:

答案 0 :(得分:1)

由于没有Servlet容器,因此没有办法通过Spring MVC Test进行测试,因此没有JSP渲染。

那说你仍然可以使用Spring MVC Test来测试你的所有控制器逻辑,并通过创建一个完整的集成测试(运行一个实际的Servlet容器)来单独验证Tiles配置,该测试将每个页面呈现一次并检查它是否完全呈现所有预期的部分。