一、前言

使用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测试的更多相关文章

  1. Web测试介绍2一 安全测试

            安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...

  2. Web测试的常用测试用例与知识

    1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...

  3. Web测试中常见分享问题

         Web测试中,由于开发通常指注重完成H5页面的逻辑功能,对各种系统.浏览器等考虑不周,同时Android端各类机型碎片化,容易产生兼容性问题,这其中以分享类型为最. 本文简单分析总结一些测试 ...

  4. web测试常用的用例及知识

      1.      Web测试中关于登录的测试... 1 2.      搜索功能测试用例设计... 2 3.      翻页功能测试用例... 3 4.      输入框的测试... 5 5.    ...

  5. web测试安全性常见问题

    web测试安全性常见问题                  一.             登录账号明文传输 1.  问题一:登录账号密码或者修改密码明文传输 现象:目前物流对内的java系统基本上都是 ...

  6. app测试与web测试的区别

    1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...

  7. web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢?

    这是我在知乎上遇到的一个问题: web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢? 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的, ...

  8. 关于web测试

    关于web测试1页面部分(1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)(2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)(3) 页面在窗口中的显示是 ...

  9. Web 测试经验总结

    Web功能测试常用方法 1.页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确: 2.相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确. 3.检查按钮的功能 ...

随机推荐

  1. JavaScript setInterval()執行clearInterval() 再恢復setInterval()

    clearInterval() 方法可取消由 setInterval() 设置的 timeout. clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值. ...

  2. PowerDesigner数据模型(CDM—PDM)

    操作过程 点击:  Tools/Generate Physical Data Model

  3. PS批量修改照片大小

    最近发现一个好玩的东西,分享一下懒人的做法 1.先打开一张图片,调出动作面板 2.新建动作,开始记录. 3.按Ctrl + Alt + I 或者选择图像菜单----图像大小,调出修改图像大小对话框. ...

  4. Python基础-生成器和迭代器

    生成器都是迭代器,迭代器不一定是生成器 def fansik(max): n, before, after = 0, 0, 1 while n < max: print(before) befo ...

  5. corethink功能模块探索开发(二)让这个模块可安装

    要想让这个模块可安装,只需要在opcmf.php文件中写一些配置数据就行 随便写点 Equip/opencmf.php <?php // 模块信息配置 return array( // 模块信息 ...

  6. C# W3 调试

    如果在调试附加进程中 没W3进程的话, 在运行里输入 uac  设置为从不通知 即可:

  7. asp.net 利用Response.Filter 获取输出内容, 变更输出内容

    重写 Response.Filter 就可以获取或更新输出到浏览器的内容       资料: https://weblog.west-wind.com/posts/2009/Nov/13/Captur ...

  8. PHP实现生成唯一编号(36进制的不重复编号)

    当我们要将一个庞大的数据进行编号时,而编号有位数限制,比如5位的车牌号.10位的某证件号码.订单流水号.短网址等等,我们可以使用36进制计算出符合位数的不重复的编号. 我们将0-Z(012345678 ...

  9. 03_Hadoop简单介绍以及版本信息

    一.海量数据: 量:大.数目多,数据量到达PB.ZB级别,条目数到达几十亿条.百亿条 1)存储:分布式,集群的概念,管理(主节点.从节点),HDFS(HadoopDistributedFileSyst ...

  10. FreeBSD 安装过程

    FreeBSD安装步骤: 回车 按默认回车 输入服务器的计算机名 去掉games,加上src安装如下图 Lib32 ports src这三项一定要安装上 回车 选择Manual 进入以后点create ...