我使用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
配置中的stylesheet
和Apache Tiles
文件是否正确配置?如果找不到文件,则会出现错误。
答案 0 :(得分:1)
由于没有Servlet容器,因此没有办法通过Spring MVC Test进行测试,因此没有JSP渲染。
那说你仍然可以使用Spring MVC Test来测试你的所有控制器逻辑,并通过创建一个完整的集成测试(运行一个实际的Servlet容器)来单独验证Tiles配置,该测试将每个页面呈现一次并检查它是否完全呈现所有预期的部分。