您的位置 首页 > 腾讯云社区

SpringBoot(十五):MockMVC-web单元测试---用户2769131

简介

开发一个优秀的系统,单元测试也是必不可少的,Spring Boot 对单元测试也做了一些支持,MockMVC就是之一,可以模拟web端的post,get请求,测试也能得到详细的过程

使用方法

添加依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>

编写测试代码

@SpringBootTest public class Springboot13StarterTestApplicationTests { private MockMvc mockMvc; //初始化资源 @Before public void setMockMvc() throws Exception{ mockMvc= MockMvcBuilders.standaloneSetup(new HelloController()).build(); } @Test public void test() throws Exception{ mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=低调小熊猫") .accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()); } @Test public void test2() throws Exception{ mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=低调小熊猫") .accept(MediaType.APPLICATION_JSON_UTF8)) .andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("低调小熊猫"))); } @Test public void contextLoads() { System.out.println("低调小熊猫"); } }

代码作用accept(MediaType.APPLICATIONJSONUTF8)) 设置编码格式 andDo(print()) //会将请求和相应的过程都打印出来 Matchers.containsString("str"),判断返回的结果集中是否包含“str”这个字符串

运行测试

我们运行第一个test

MockHttpServletRequest: HTTP Method = POST Request URI = /hello Parameters = {name=[低调小熊猫]} Headers = {Accept=[application/json;charset=UTF-8]} Body = <no character encoding set> Session Attrs = {} Handler: Type = com.hope.controller.HelloController Method = public java.lang.String com.hope.controller.HelloController.hello(java.lang.String) 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=[application/json;charset=UTF-8], Content-Length=[21]} Content type = application/json;charset=UTF-8 Body = 你好低调小熊猫 Forwarded URL = null Redirected URL = null Cookies = []

当看到“Body = 你好低调小熊猫”,表示成功了,还能看到整个请求详细信息

第二个test,会打印我们请求的结果

第三个测试,就是普通的测试了

以上代码只是spring-boot-starter-test 组件的一部分功能,还有很多好玩的一起学吧

源码

https://github.com/java-aodeng/hope

---来自腾讯云社区的---用户2769131

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: