gpt4 book ai didi

spring - spring mvc 测试中的空内容

转载 作者:行者123 更新时间:2023-12-04 00:23:18 43 4
gpt4 key购买 nike

我无法使用 spring mvc test 测试页面内容,因为它是空的。

给定最简单的 Controller :

@RequestMapping(value = "/home")
public String home(HttpSession session, ModelMap model) {
return "home";
}

相关的瓷砖配置:
<definition name="base.definition" template="/jsp/view/application.jsp">
<put-attribute name="header" value="/jsp/view/header.jsp" />
<put-attribute name="menu" value="/jsp/view/menu.jsp" />
<put-attribute name="title" value="" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/jsp/view/footer.jsp" />
</definition>
<definition name="home" extends="base.definition">
<put-attribute name="title" value="Welcome" />
<put-attribute name="body" value="/jsp/view/home/list-home.jsp" />
</definition>

简单 list-home.jsp
<p>Welcome</p>

和测试:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration()
@ContextConfiguration(classes = WebTestConfig.class)
public class HomeControllerTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;

@Before
public void _setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}

@Test
public void home() throws Exception {
mockMvc.perform(get("/home"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(forwardedUrl("/jsp/view/application.jsp"))
.andExpect(content().string("Welcome"));
}

它失败了 java.lang.AssertionError: Response content expected:<Welcome> but was:<>
打印出来的响应如下:
MockHttpServletResponse:
Status = 200
Error message = null
Headers = {}
Content type = null
Body =
Forwarded URL = /jsp/view/application.jsp
Redirected URL = null
Cookies = []

环境:
  • Spring 3.2
  • 瓷砖 2
  • Java 6

  • 我错过了什么?

    注意:代码在带有真实浏览器的 Tomcat 中工作。

    最佳答案

    您不能为 JSP 页面的内容编写断言,因为 JSP 页面由 servlet 容器呈现,并且 Spring MVC 测试不运行 servlet 容器。您只能验证 View 名称是否正确和/或请求被转发到正确的 url。

    但是,如果您使用不需要 servlet 容器的 View 技术(例如 Velocity 或 Thymeleaf),则可以为 View 的内容编写断言。

    关于spring - spring mvc 测试中的空内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28944538/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com