我正在使用spring-boot-starter-web,spring-boot-starter-test和spring-boot-starter-groovy-templates(1.2.0.M1)。
我正在尝试使用spring boot构建一个小应用程序。我用mockito为mvc控制器编写了测试。如果我用maven运行这些测试,我会为每个控制器测试得到以下错误:
Servlet Could not resolve view with name 'persons/list'
我不确定我是否配错了。
测试用例中的错误消失了:
我已经设置了一个示例项目,在我的应用程序中出现相同的错误: https://github.com/waldemar-schneider/spring-boot-mvc-test
我错过了什么?提前谢谢答案 0 :(得分:1)
您尚未在PersonControllerTest
使用的配置中启用自动配置,这意味着Spring Boot的Groovy模板支持的自动配置不会发生。要解决此问题,请将@EnableAutoConfiguration
添加到ControllerTestConfig
。
它也没有真正与1.1.7.RELEASE一起使用,但是它以一种不同的方式失败,而你的测试没有识别出来。
如果您更新测试也要拨打MockMvcResultHandlers.print()
:
mockMvc.perform(get("/persons/"));
.andDo(print())
.andExpect(status().isOk())
.andExpect(view().name("persons/list"))
.andExpect(model().attribute("persons", hasSize(1)));
您会在输出中看到响应的空体:
…
MockHttpServletResponse:
Status = 200
Error message = null
Headers = {Content-Type=[text/html;charset=UTF-8]}
Content type = text/html;charset=UTF-8
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
如果您按上述方式添加@EnableAutoConfiguration
,则响应将包含预期的HTML:
…
MockHttpServletResponse:
Status = 200
Error message = null
Headers = {Content-Type=[text/html;charset=UTF-8]}
Content type = text/html;charset=UTF-8
Body = <!DOCTYPE html><html class='no-js' lang='en'><head></head><body><h2>Person list</h2><table><thead><tr><th>Name</th><th>Surname</th></tr></thead><tr><td/><td/></tr></table></body></html>
Forwarded URL = null
Redirected URL = null
Cookies = []
答案 1 :(得分:0)
application.properties
为空'persons/list'
的是什么?一个 jsp 文件? tiles 视图名称?您需要配置application.properties