请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 368|回复: 1

Spring Cloud Spring Boot mybatis分布式微服务云架构(六)RESTful API单元测试

[复制链接]
发表于 2018-6-25 17:44:13 | 显示全部楼层 |阅读模式
下面针对该Controller编写测试用例验证正确性,具体如下。当然也可以通过浏览器插件等进行请求提交验证。
  1. @RunWith(SpringJUnit4ClassRunner.class)   
  2. @SpringApplicationConfiguration(classes = MockServletContext.class)   
  3. @WebAppConfiguration   
  4. public class ApplicationTests {   
  5.    
  6.     private MockMvc mvc;   
  7.    
  8.     @Before   
  9.     public void setUp() throws Exception {   
  10.         mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();   
  11.     }   
  12.    
  13.     @Test   
  14.     public void testUserController() throws Exception {   
  15.         // 测试UserController   
  16.         RequestBuilder request = null;   
  17.    
  18.         // 1、get查一下user列表,应该为空   
  19.         request = get("/users/");   
  20.         mvc.perform(request)   
  21.                 .andExpect(status().isOk())   
  22.                 .andExpect(content().string(equalTo("[]")));   
  23.    
  24.         // 2、post提交一个user   
  25.         request = post("/users/")   
  26.                 .param("id", "1")   
  27.                 .param("name", "测试大师")   
  28.                 .param("age", "20");   
  29.         mvc.perform(request)   
  30.                 .andExpect(content().string(equalTo("success")));   
  31.    
  32.         // 3、get获取user列表,应该有刚才插入的数据   
  33.         request = get("/users/");   
  34.         mvc.perform(request)   
  35.                 .andExpect(status().isOk())   
  36.                 .andExpect(content().string(equalTo("[{"id":1,"name":"测试大师","age":20}]")));   
  37.    
  38.         // 4、put修改id为1的user   
  39.         request = put("/users/1")   
  40.                 .param("name", "测试终极大师")   
  41.                 .param("age", "30");   
  42.         mvc.perform(request)   
  43.                 .andExpect(content().string(equalTo("success")));   
  44.    
  45.         // 5、get一个id为1的user   
  46.         request = get("/users/1");   
  47.         mvc.perform(request)   
  48.                 .andExpect(content().string(equalTo("{"id":1,"name":"测试终极大师","age":30}")));   
  49.    
  50.         // 6、del删除id为1的user   
  51.         request = delete("/users/1");   
  52.         mvc.perform(request)   
  53.                 .andExpect(content().string(equalTo("success")));   
  54.    
  55.         // 7、get查一下user列表,应该为空   
  56.         request = get("/users/");   
  57.         mvc.perform(request)   
  58.                 .andExpect(status().isOk())   
  59.                 .andExpect(content().string(equalTo("[]")));   
  60.    
  61.     }   
  62.    
  63. }  
复制代码

至此,我们通过引入web模块(没有做其他的任何配置),就可以轻松利用Spring MVC的功能,以非常简洁的代码完成了对User对象的RESTful API的创建以及单元测试的编写。其中同时介绍了Spring MVC中最为常用的几个核心注解:@Controller,@RestController,RequestMapping以及一些参数绑定的注解:@PathVariable,@ModelAttribute,@RequestParam等。
 楼主| 发表于 2018-6-25 17:44:50 | 显示全部楼层
希望可以帮助更多有兴趣研发spring cloud框架的朋友
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2020-3-30 01:12 , Processed in 0.259048 second(s), 7 queries , File On.

快速回复 返回顶部 返回列表