小编Ben*_*Ben的帖子

使用MockMvc测试重定向URL的HTTP状态代码

我想使用MockMvc在Spring Boot Application中测试登录过程.成功登录后,用户将被重定向到/ 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());
}
Run Code Online (Sandbox Code Playgroud)

该测试提供了预期的结果.

另外,我必须测试重定向页面(/ 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());
}
Run Code Online (Sandbox Code Playgroud)

相反,如果获得200或500(如果出现错误),我会得到状态代码302.

在遵循重定向URL时,有没有办法正确测试HTTP状态代码?

谢谢和最好的问候

java spring-mvc spring-mvc-test spring-boot mockmvc

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

mockmvc ×1

spring-boot ×1

spring-mvc ×1

spring-mvc-test ×1