【发布时间】:2017-04-29 19:10:50
【问题描述】:
我想使用 MockMvc 在 Spring Boot 应用程序中测试登录过程。成功登录后,用户被重定向到 /home。为了测试这一点,我使用:
@Test
public void testLogin() throws Exception {
RequestBuilder requestBuilder = formLogin().user("test@tester.de").password("test");
mockMvc.perform(requestBuilder).andExpect(redirectedUrl("/home")).andExpect(status().isFound());
}
此测试提供了预期的结果。
另外,我必须测试重定向页面(/home)的HTTP状态码。假设 /home-page 返回 HTTP 500 内部服务器错误,我需要能够对此进行测试。
我尝试了以下方法:
@Test
public void testLogin() throws Exception {
RequestBuilder requestBuilder = formLogin().user("test@tester.de").password("test");
mockMvc.perform(requestBuilder).andExpect(redirectedUrl("/home")).andExpect(status().isFound());
mockMvc.perform(get("/home").with(csrf())).andExpect(status().isOk());
}
如果得到 200 或 500(如果出现错误),我会得到状态码 302。
在跟随重定向 URL 时,有什么方法可以正确测试 HTTP 状态代码?
感谢和问候
【问题讨论】:
标签: java spring-mvc spring-boot mockmvc spring-mvc-test