SpringBoot_07_Springboot test 使用mockito进行web测试
一、前言
使用mockito测试框架可以方便的进行web测试
二、用法实例
package com.ray.weixin.qy.controller; import com.ray.weixin.qy.ApplicationTests;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.http.MediaType; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /**
* @author : shira
* @date : 2018/7/8
* @time : 15:03
* @desc :
**/
@Slf4j
public class UserControllerTest extends ApplicationTests { /**
* 1.新增用户信息
* @throws Exception
*/
@Test
public void testCreate() throws Exception {
String content = "{\n" +
"\"userid\":\"sunwukong\",\n" +
"\"name\":\"孙悟空\",\n" +
"\"department\":[2],\n" +
"\"position\":\"总经理\",\n" +
"\"mobile\":\"17636763734\",\n" +
"\"gender\":\"0\",\n" +
"\"email\":\"17636763734@qq.com\"\n" +
"\n" +
"\n" +
"}"; String result = mockMvc.perform(
post("/user")
.content(content)
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(jsonPath("$.status").value(0))
.andReturn().getResponse().getContentAsString(); log.info(result);
} /**
* 2.删除用户信息
* @throws Exception
*/
@Test
public void testDelete() throws Exception { String userId="sunwukong"; String result = mockMvc.perform(
delete("/user")
.param("userId", userId)
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(jsonPath("$.status").value(0))
.andReturn().getResponse().getContentAsString(); log.info(result);
} /**
* 3.修改用户信息
* @throws Exception
*/
@Test
public void testUpdate() throws Exception {
String content = "{\n" +
"\"userid\":\"sunwukong\",\n" +
"\"name\":\"孙悟空\",\n" +
"\"department\":[2],\n" +
"\"position\":\"总经理\",\n" +
"\"mobile\":\"17636763734\",\n" +
"\"gender\":\"0\",\n" +
"\"email\":\"17636763734@qq.com\"\n" +
"\n" +
"\n" +
"}";
String result = mockMvc.perform(
put("/user")
.content(content)
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(jsonPath("$.status").value(0))
.andReturn().getResponse().getContentAsString(); log.info(result);
} /**
* 4.获取用户信息
* @throws Exception
*/
@Test
public void testGet() throws Exception { String userId="sunwukong"; String result = mockMvc.perform(
get("/user")
.param("userid", userId)
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
//.andExpect(jsonPath("$.length()").value(3))
.andExpect(jsonPath("$.status").value(0))
.andReturn().getResponse().getContentAsString(); log.info(result);
} }
三、用法详解
四、参考资料
1.SpringBoot与JUnit+Mockito 单元测试
SpringBoot_07_Springboot test 使用mockito进行web测试的更多相关文章
- Web测试介绍2一 安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...
- Web测试的常用测试用例与知识
1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...
- Web测试中常见分享问题
Web测试中,由于开发通常指注重完成H5页面的逻辑功能,对各种系统.浏览器等考虑不周,同时Android端各类机型碎片化,容易产生兼容性问题,这其中以分享类型为最. 本文简单分析总结一些测试 ...
- web测试常用的用例及知识
1. Web测试中关于登录的测试... 1 2. 搜索功能测试用例设计... 2 3. 翻页功能测试用例... 3 4. 输入框的测试... 5 5. ...
- web测试安全性常见问题
web测试安全性常见问题 一. 登录账号明文传输 1. 问题一:登录账号密码或者修改密码明文传输 现象:目前物流对内的java系统基本上都是 ...
- app测试与web测试的区别
1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...
- web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢?
这是我在知乎上遇到的一个问题: web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢? 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的, ...
- 关于web测试
关于web测试1页面部分(1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)(2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)(3) 页面在窗口中的显示是 ...
- Web 测试经验总结
Web功能测试常用方法 1.页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确: 2.相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确. 3.检查按钮的功能 ...
随机推荐
- android密码显示和隐藏
if (showPwd){ //设置EditText文本为可见的 password.setTransformationMethod(HideReturnsTransformationMethod.ge ...
- LVM逻辑卷管理器
LVM概述 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...
- 【Maven】应用Maven生成jar,包含关联库
1. java project直接export到处jar包就可以,但在导出的过程中需要指定main class入口. 2. spring boot的项目,应用maven管理库,希望打成jar包,部署到 ...
- NodeJS应用程序设置为window service-辅助工具(C#)
1.修改nssm,去对话框后 2.生成批处理文件,执行 3.将nssm.exe.node.exe放在资源文件里面 附代码 工具
- substring splice
返回start到end之前 不包括end stringObject.substring(start,end) (不接受负数) stringObject.slice(start,end) start起始 ...
- UI控件之UIImageView
UIImageView:图像视图,用于在应用程序中显示图片 UIImage:是将图片文件转换为程序中的图片对象 UIImageView是UIImage的载体 方法一:用此方法创建图片对象,会将图片ca ...
- 微信小程序相关资料整理
微信小程序官方介绍https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html?t=201818 微信小程序开发资源https://jue ...
- accept= 'image/*'反映缓慢
input[type='file']的accept属性用来指定上传文件的MIME类型. 将其设为accept= 'image/*',顾名思义,过滤掉所有非图片文件, 但在实际操作中,发现有时会出现响应 ...
- [Android]开源中国源码分析之二---DrawerLayout
从启动界面到主界面之后的效果如图所示,采用的是v4包下的DrawerLayout, activity_main.xml文件如下: <!-- A DrawerLayout is intended ...
- mysql服务器3306端口不能远程连接的解决
1.网络检测 1)ping主机可以: 2)telnet 主机3306端口不可以: telnet 主机22端口可以: 说明与本机网络没有关系: 2.端口检测 1)netstat ...