一、前言

使用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. 第K层的结点数

    int GetNodeNumKthLevel(BiTNode * pRoot, int k) { if(pRoot == NULL || k < 1) return 0; if(k == 1) ...

  2. pyhton3 sys模块

    Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 1 ). sys.stdin 标准输入流.2 ).sys.stdout 标准输出流.3 ). sys.std ...

  3. Loadrunder之脚本篇——参数化方法

    导语 参数化旨在模拟多数据来进行测试,所以再选择参数化你明确你参数化的内容! 方法一 1.确定需要参数化的内容 2.选中需要参数化的内容 3.右键选中的内容->Replace with a Pa ...

  4. $ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档

    本文主要介绍xlrd模块读取Excel文档的基本用法,并以一个GDP数据的文档为例来进行操作. 1. 准备工作: 1. 安装xlrd:pip install xlrd 2. 准备数据集:从网上找到的1 ...

  5. zookeeper部署搭建

    zookeeper教程 1.先在linux系统中安装jdk并配置环境变量,可以参考下面的链接1 2.下载安装zookeeper软件 教程参考: 链接1:http://www.linuxidc.com/ ...

  6. yii框架的中的一些使用介绍

    Yii框架的使用整理 获取配置文件中的数据 Yii::$app->params[‘配置文件中对应的参数名称’] 获取文件表单提交的数据 Yii::$app->request->pos ...

  7. async/await方法解析

    欲了解await,必须先了解Promise,可参考: http://www.cnblogs.com/yanze/p/6347646.html 支持度: ES6已支持Promise,ES7也决定支持aw ...

  8. tcp底层连接过程(c语言)

    在用了多种上位机开发环境,包括mfc.Qt.C#之后,发现它们的API都是对底层协议的(可以说是C语言)的封装,所以了解了底层协议,任意换上位机开发环境都是没问题的. 1.服务器创建套接字socket ...

  9. MapReduce-文本输入

    1.TextInputFormat TextInputFormat是默认的InputFormat.每条记录是一行输入.键是LongWritable类型,存储该行在整个文件中的字节偏移量.值是这行的内容 ...

  10. Codeforces Round #200 (Div. 1) BCD

    为了锻炼个人能力奋力div1 为了不做原题从200开始 B 两个电线缠在一起了 能不能抓住两头一扯就给扯分开 很明显当len为odd的时候无解 当len为偶数的时候 可以任选一段长度为even的相同字 ...