前言

  本测试demo基于Spring框架测试,这几个月也是刚刚接触Spring的项目。如果不对的地方请多谅解。

正文

  1、创建测试类,添加注解

    @RunWith(SpringRunner.class)
    @SpringBootTest
 2、 添加自己要测试Controller作为成员变量,同时将我们自己的Mock类添加作为成员变量,目的是通过它来调用我们的api。我们自己的mock中引用的是MockMvc这个类,在org.springframework.test.web.servlet包下面。
   在我们自己封装mock中的构造函数中来启动controller
   
   public MockMvcCore(Object... controllers) {
    if (mockMvc == null) {
    mockMvc = MockMvcBuilders.standaloneSetup(controllers).build();
    }
   }
3、编写我们自己的调用测试方法
    1、调用时候需要MockHttpServletRequestBuilder类,通过它来获取我们的请求方式:put,get,post,delete。直接点的方式就有这些方法,参数为我们的url地址。
     MockMvcRequestBuilders.get(url)
    2、MockHttpServletRequestBuilder.params(parameters);这个方法来设置我们的参入的参数,参数为Map类型;其中还有很多的方法,可以进行设置我们的请求内容。
      mockHttpServletRequestBuilder.contentType(MediaType.APPLICATION_JSON);
      mockHttpServletRequestBuilder.content(requestBody);
    3、发起请求
ResultActions resultActions = mockMvc(就是MockMvc类).perform(mockHttpServletRequestBuilder);
    4、拿到请求的结果 MvcResult result = resultActions.andReturn();这个时候就拿到结果了,是整体的结果。
    5、最后拿到api相应的返回内容 result.getResponse().getContentAsString();
  一般项目中都是要封装起来的以上的过程,是我从项目的封装分析处理的也就是没有面向对象的一个顺序。下面就是按照上面步骤的一个测试api方法。
  
    @Test
    public void test() throws Exception{      MockMvc m = MockMvcBuilders.standaloneSetup(myController).build();
     MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("myUrl");
     MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
     parameters.add("参数字段名","参数字段值");
     builder.params(parameters);
     ResultActions actions = m.perform(builder);
     MvcResult result = actions.andReturn();
     String content = result.getResponse().getContentAsString();
    }

 总结     

大致就这么一个简单过程,封装起来就可以灵活应用了。也是第一次用Mock写测试,还请谅解。

        Life is a journey. What we should care about is not where it's headed but what we see and how we feel

mock api测试demo的更多相关文章

  1. API 测试的具体实现

    目录 API 测试的具体实现 基于 Spring Boot 构建的 API 使用 cURL 命令行工具进行测试 使用图形界面工具 Postman 进行测试 如何应对复杂场景的 API 测试? 总结 A ...

  2. JSX AS DSL? 写个 Mock API 服务器看看

    这几天打算写一个简单的 API Mock 服务器,老生常谈哈?其实我是想讲 JSX, Mock 服务器只是一个幌子. 我在寻找一种更简洁.方便.同时又可以灵活扩展的.和别人不太一样的方式,来定义各种 ...

  3. android gps开发必备资料(含测试demo下载)

    入门资料参考: How accurate is Android GPS? Part 1: Understanding Location Data How accurate is Android GPS ...

  4. 开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试

    Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试 ...

  5. 如何通过Mock API提高APP开发效率?

    APP开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终apk)添加一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户端的开发. Mock API提供了这一问 ...

  6. Mock API是如何在开发中发光发热的?

    在长期的服务过程中,我们经常会遇到前来咨询的用户与我们反馈以下这种情况:咨询者是一个前端人员,在项目开发的过程中需要与后端进行对接,遇到后端还没完成数据输出的情况下,他只好写静态模拟数据,在遇到大型项 ...

  7. MOCK API 的定义及实践(使用eolinker实现)

    MOCK API 的定义 根据百度百科的定义,mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象,mock对 ...

  8. Python+Flask搭建mock api server

    Python+Flask搭建mock api server 前言: 近期由于工作需要,需要一个Mock Server调用接口直接返回API结果: 假如可以先通过接口文档的定义,自己模拟出服务器返回结果 ...

  9. 《软件测试52讲》读书笔记 —— API测试怎么做

    前言 文章中还介绍了测试工具,比如cURL.postman,单API如何测试:但这些都是偏基础的东西,且网上教程各式各样,就不再赘述了:这里主要讲的就是关于复杂场景的API测试要如何应对 API测试的 ...

随机推荐

  1. windows下grunt的快速入门

    1.认识grunt  grunt是什么:他是一套前端自动化工具,是一个基于nodejs的命令行工具.(Grunt和Grunt插件是通过npm  安装并管理的,所以首先要安装nodejs). grunt ...

  2. 16 . PythonWeb框架之Django

    Web框架简介 Web开发是Python语言应用领域的重要部分,也是目前最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django.Tornado.Flask.Twist ...

  3. (linux)Centos 7 xfsdump文件系统的备份和恢复

         XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统. centos7选择xfs格式作为默认文件 ...

  4. Beta冲刺——5.24

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.安排每个人进行为期3天的 ...

  5. 【积累】如何优雅关闭SpringBoot Web服务进程

    1.使用ps ef查出进程对应的pid. 2.使用kill -15 pid结束进程. 为什么不使用kill -9 pid,个人理解kill -15 pid更优雅,能在结束进程前执行spring容器清理 ...

  6. 【Flume】知识总结

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并 ...

  7. Multiple annotations found at this line: - Undefined attribute name (charset).

    把 meta charset="UTF-8" 改为 meta http-equiv="Content-Type" content="text/html ...

  8. Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...

  9. Java实现 蓝桥杯VIP 算法提高 企业奖金发放

    算法提高 企业奖金发放 时间限制:1.0s 内存限制:512.0MB 企业发放的奖金根据利润提成.利润低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10% ...

  10. Java实现 蓝桥杯VIP 算法提高 洗牌

    算法提高 洗牌 时间限制:1.0s 内存限制:256.0MB 问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要 ...