测试工具之 Mock测试工具比较
凌雪 2018-08-07 来源 :网络 阅读 1023 评论 0

摘要:本文将带你了解测试工具之 Mock测试工具比较,希望对大家学测试工具有所帮助

本文将带你了解测试工具之 Mock测试工具比较,希望对大家学测试工具有所帮助


Java Mock测试工具比较
   
    最近,在做一个Java Web的项目,项目中需要集成一套Mock测试工具。随即对市面上的mock测试工具进行了调研,下面是调研结果。其中,mock测试工具分为单元测试级别的mock工具和接口测试级别的mock工具。
   
   
   
    1.单元测试级别的mock工具
   
    目前,这个级别的mock工具有easymock、jMock、Mockito、Unitils Mock、PowerMock、JMockit等等.
关于它们的优劣势在JMockit官网上给出一个简单的比较,结果如下图所示。这个结果可能会偏向JMockit,我们可以作为参考。
    Features:
   
   
   
   
        Feature
  EasyMock
  jMock
  Mockito
  UnitilsMock
  PowerMock(EasyMock)
  PowerMock(Mockito)
  JMockit
   
   
   
      Invocation count constraints(调用数限制)
   
    Recording strict expectations(记录严格的预期结果)
   
   
   
      Explicit   verification(显式验证)
 
 
   
   
      Partial   mocking(部分mock)
   
   
   
      Easier   argument matching based on properties of value objects(基于值对象属性的简化参数匹配)
   
   
        Cascading mocks(级联mock)
 
 
   
   
      Mocking of multiple interfaces(多接口mock)
 
   
   
      Mocking of annotation types(注释类型mock)
 
   
   
   
      Partially ordered expectations
  
   
   
      Auto-injection of mocks(mock的自动注入)
 
 
   
   
      Mocking of enums(枚举的mock)
 
   
   
      Declarative mocks for test methods (mock   parameters)
 
   
   
      Mocking   of unspecified implementation classes(未实现接口类的mock)
  
   
   
      “Duck typing” fakes for integration   tests
 
   
   
   
      Total
  4/14
  4/14
  8/14
  6/14
  5/14
  9/14
  14/14
   
   
   
   
    Qualities:
   
   
   
   
      Feature
  EasyMock
  jMock
  Mockito
  UnitilsMock
  PowerMock(EasyMock)
  PowerMock(Mockito)
  JMockit
   
      Argument matchers for some   parameters only, not all
 
  No method call to switch from   record to replay(切换记录回放时无方法调用)
 
   No extra code for implicit   verification(隐式验证没有额外代码)
 
   
      No extra “prepare for test”   code(没有额外的”prepare for test”代码)
   
  No need   to use @RunWith annotation or base test class(不需要用@runwith注解和测试基类)
   
   
      Consistent   syntax between void and non-void methods(空和非空方法的语法一致)
 
   
   
   
      Mocking of constructors and final/static/private   methods(构造函数、final、static和private方法的mock)
  

   
   
      Mocking of “new-ed”   objects(“new-ed”对象的mock)
  

   
  Support for   covariant return   types
 
 
 

   
   
      Single jar file in the classpath is sufficient to use mocking API(在classpath中的单个jar文件就能够使用mockAPI
 
 
  
 
  N/A
  N/A

   
      Total
  2/10
  3/10
  4/9
  4/9
  2/9
  3/8
  10/10
   
   
   
   
    就目前来讲,是mockit+powermock、JMockit这两种工具使用人数较多。JMockit的功能最为完善,mockit+powermock的用户体验相对较好一点。
   
   
   
    2.接口测试级别的mock工具
   
    接口级别的mock工具完成的主要功能是对一个用户的请求,模拟server返回一个接口的响应数据。目前,这类的主流mock工具主要有以下几种:  
    (1)Wiremock
    github地址: https://github.com/tomakehurst/wiremock
    特点:
    - 支持Http响应头,匹配URL,heade和body内容模式  
    -    请求验证
    - 可以作为一个独立的进程或者WAR   app在单元测试中运行
    - 可以通过Java   API,Json文件和JSON over   HTTP配置
    - 有记录/回放功能
    -   Fault injection
    - 可以作为请求检查和替换的浏览器代理
    - 有状态的行为模拟
    -   可配置响应延迟
 (2)Mockserver
 github地址:https://github.com/jamesdbloom/mockserver
 特点:
 - 能够mock HTTP或者HTTPS 的server或者服务
 - 当一个请求匹配 expectation时能够返回一个mock response
 - 当一个请求匹配 expectation时能够forward   一个请求
 - 当一个请求匹配 expectation时能够执行一个回调(callback),允许动态地创建response  
 - 支持Request验证  
    (3)Moco
    github地址:https://github.com/dreamhead/moco  
    特点:
    - an easy setup stub   framework.
    - 支持HTTP、HTTPS、SOCKS
    - 支持单元测试
    (4)Mock.js
    github地址:https://github.com/nuysoft/Mock/tree/refactoring
    特点:
    - 根据数据模板生成整合后的数据
- 对于Ajax请求提供request/response mocking
    (5)RAP
    github地址:https://github.com/thx/RAP 
    特点:
    - Web接口管理工具,接口自动化,MOCK数据自动生成,自动化测试
    - 能够通过分析接口结构自动生成Mock数据、校验真实接口的正确性  
    - 阿里产品,功能完善、结合了文档、Mock.js、可视化、Rest、接口过渡、文档修改提醒、支持本地部署。  

  

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试工具频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程