现在我们来利用Spring Boot来构建一个RestFul API,具体如下:

1.添加Springboot测试注解

@RunWith(SpringRunner.class)

@SpringBootTest

public class UserControllerTest {

}

2.伪造mvc环境

// 注入Spring 工厂

@Autowired

private WebApplicationContext wac;

//伪造mvc环境

private MockMvc mockMvc;

@Before

public void setup(){

mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();

}

3.引入静态方法

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

3.编写测试方法

@Test

public void whenXXXXSuccess() throws Exception {

//模拟发送请求

String result =

mockMvc.perform(get("/user") //发往/user的get请求,可以换成post,put,delete方法执行相应请求

.param("username","xxx") //get请求时填写参数的位置

.contentType(MediaType.APPLICATION_JSON_UTF8) //utf编码

.content(content)) //post和put请求填写参数的位置

.andExpect(status().isOk())

.andExpect(jsonPath("$.length()").value(3)) //期望的json返回结果

.andReturn().getResponse().getContentAsString(); //对返回字符串的json内容进行判断

log.info(result);

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java restful接口测试_详解SpringBoot restful api的单元测试相关推荐

  1. java 引用传递_详解java的值传递、地址传递、引用传递

    详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...

  2. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  3. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  4. python java混合编程_详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  5. Java implement意思_详解JAVA中implement和extends的区别

    详解JAVA中implement和extends的区别 发布于 2020-4-14| 复制链接 摘记: 详解JAVA中implement和extends的区别extends是继承父类,只要那个类不是声 ...

  6. java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法

    Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...

  7. idea看java版本设置_详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)...

    详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用) 有时候需要看Java源码,但是 Java 1.7 和 Java 1.8的差别的关系,有时候你想查看不同jd ...

  8. java排序接口_详解JAVA使用Comparator接口实现自定义排序

    1.原则 Comparator接口可以实现自定义排序,实现Comparator接口时,要重写compare方法: int compare(Object o1, Object o2) 返回一个基本类型的 ...

  9. java字体推荐_详解Eclipse 字体、字号的设置、最佳字体推荐

    Eclipse 最佳字体 推荐: 步骤:Eclipse->Windows[窗口]->Preferences[首选项]->General[常规]->Appearance[外观]- ...

最新文章

  1. python多进程原理_python多进程的详细介绍(附示例)
  2. ReDim Preserve 的用途
  3. 5张图搞懂Java深浅拷贝
  4. static和不完全类型的一个例子
  5. 从零开始攻略PHP(8)——面向对象(下)
  6. 初来乍到!各位博客朋友多多支持!
  7. 外卖和快递行业数据_抢人大战愈演愈烈,东莞再现用工荒!不只流向外卖、快递等行业...
  8. Kunpeng BoostKit 使能套件:大数据场景如何实现“大鹏一日同风起”倍级性能提升?
  9. scala通过JDBC进行数据库操作
  10. Apache 更改80端口
  11. IE6不支持min-heigt的bug解决的办法
  12. 洛谷 P1036 [NOIP2002 普及组] 选数(DFS)
  13. HDU2524 矩形A + B【组合计算】
  14. .net 3.5 数据库开发 之 LINQ 上
  15. 使用windbg调试程序
  16. Maven下载和安装
  17. c++语言“case”,C++ switch case详解
  18. cf计算机丢失msvcp100,Win7丢失MSVCP100.dll导致程序无法启动怎们办
  19. CAT-6:六类/增强六类双绞线标准
  20. matlab正方形追及问题,行测常考题型讲解:环形相遇与追及问题

热门文章

  1. wxpython 可视化开发pdf_MicroPython for the Internet of Things.pdf
  2. 安卓APP_ 布局(3) —— FrameLayout帧布局
  3. 全国计算机等级考试题库二级C操作题100套(第26套)
  4. matlab colorbar采用对数,matlab colorbar的使用 | 學步園
  5. Error occurred while trying to proxy request
  6. mysql使用字符函数length,获取参数值的字节个数
  7. 图解java工程师学习路线
  8. java lambda 表达式中的双冒号和箭头的用法 ::
  9. 以太网性能测试仪应该具备什么功能?
  10. 后端:SpringBoot 的@Value注解,高级特性,非常实用!!