【SpringBoot深入浅出系列】SpringBoot之集成JUnit5+MockMvc测试Controller
【摘要】 一、写在前面本文在 SpringBoot之集成JUnit5进行单元测试 一文基础上进行拓展延伸,实现对 Controller 类的测试。 二、创建项目集成 JUnit 5 测试 Controller 1.项目说明本项目在 SpringBoot之集成JUnit5进行单元测试 一文创建的项目 junit 基础上进行修改完善,实现对 Controller 类的测试。 2.修改测试类 LoginC...
一、写在前面
本文在 SpringBoot之集成JUnit5进行单元测试 一文基础上进行拓展延伸,实现对 Controller 类的测试。
二、创建项目集成 JUnit 5 测试 Controller
1.项目说明
本项目在 SpringBoot之集成JUnit5进行单元测试 一文创建的项目 junit 基础上进行修改完善,实现对 Controller 类的测试。
2.修改测试类 LoginControllerTest
修改注意事项:
(1)添加 @AutoConfigureMockMvc
(2)实现 setupMockMvc() 方法并添加注解 @BeforeEach
完整代码如下:
@SpringBootTest
@AutoConfigureMockMvc
class LoginControllerTest {
@Autowired
private MockMvc mvc;
private MockHttpSession session;
@BeforeEach
public void setupMockMvc() {
session = new MockHttpSession();
}
@Test
void getUserInfo() throws Exception{
MvcResult mvcResult = (MvcResult) mvc.perform(MockMvcRequestBuilders.get("/user/getUserInfo")
.accept(MediaType.ALL)
.session(session))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
int status = mvcResult.getResponse().getStatus();
String content = mvcResult.getResponse().getContentAsString();
System.out.println(content);
}
}
3.运行测试
运行后可在控制台看到以下信息:
MockHttpServletRequest:
HTTP Method = GET
Request URI = /user/getUserInfo
Parameters = {}
Headers = [Accept:"*/*"]
Body = null
Session Attrs = {}
Handler:
Type = com.chaoyue.junit.controller.LoginController
Method = com.chaoyue.junit.controller.LoginController#getUserInfo()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"text/plain;charset=UTF-8", Content-Length:"43"]
Content type = text/plain;charset=UTF-8
Body = User(id=1, username=admin, password=123456)
Forwarded URL = null
Redirected URL = null
Cookies = []
User(id=1, username=admin, password=123456)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)