单元测试-mock技术基础

原创 2013年12月13日 15:44:59

       单元测试是在开发阶段由开发人员进行设计编写的测试,在不同的组织中单元测试与被测试代码实现先后顺序不同,有的组织采用先实现被测试代码,在编写测试代码,执行测试,有些组织采用先编写测试代码,执行测试,实现发生错误的被测试代码,再执行测试。 根据的区别就是组织内部是否在实践TDD开发方法。

       在编写单元测试时,有几个方面需要考虑:

        1、在测试一个方法时,如何构造被测试方法参数,如果参数类型比较简单那么比较容易构造,如果参数类型是复杂类型结构,并且存在多层结构,那么就需要多考虑考虑。

        2、在被测试方法中,有外部服务的调用或者外部模块调用,调用结果影响测试结果,那么如何考虑进行隔离。 因为外部服务或者外部模块被调用方法的不同,针对每种调用方法都要相应的隔离技术,例如:

               外部模块调用类在全局变量中被定义围静态变量

               外部模块被调用类是通过参数对象传递给方法的

              外部对象是一个全局静态对象,在被测试方法内直接调用

              外部对象是在被测试方法中,new 出来的新实例,并在方法体内调用

              外部模块是被隐式调用的,如被测试方法访问一个网络服务端口获取信息

               等等

       3、结果验证,单元测试要验证那些信息,按照方法结果体现形式的不同,有如下对象要验证:

              直接返回值验证

              间接对象验证 (如void 方法,它实现了对一个全局对象或内部私有对象实例的属性修改,那么要抓出对象实例并获得属性值验证结果)

              日志文件输出

              控制台信息输出

              网络数据

      如上要考虑的这些要考虑的方面,基本上都可以通过mock 进行处理。 mock 提供的是一种隔离技术,它提供如下几种隔离办法:

      1、 完全隔离,mock整个被调用类方法

      2、 部分隔离,mock部分被调用类方法

      3、 服务桩隔离, 模拟被调用的服务。接受处理请求。

   

       在基于java开发语言的项目上,可以使用PowerMock 作为Mock框架。

单元测试——Mock

mock就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。...
  • u010164936
  • u010164936
  • 2015年03月08日 10:34
  • 1050

单元测试之Mock

mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。...
  • tianwei7518
  • tianwei7518
  • 2015年06月03日 14:48
  • 3330

JUnit与Mockito单元测试典型示例

单元测试的重要性无需赘述,但单元测试也会遇到困难,其中之一就是如何 创建依赖。试想我们常见的server端分层架构,数据访问层Dao,业务层, 以及Web层,想要单元测试业务层,我们需要依赖Dao...
  • kimylrong
  • kimylrong
  • 2016年03月31日 14:50
  • 3443

有效使用Mock编写java单元测试

Java单元测试对于开发人员质量保证至关重要,尤其当面对一团乱码的遗留代码时,没有高覆盖率的单元测试做保障,没人敢轻易对代码进行重构。然而单元测试的编写也不是一件容易的事情,除非使用TDD方式,否则编...
  • chjttony
  • chjttony
  • 2013年11月08日 16:04
  • 73276

单元测试和Mock方法

单元测试和MockService标签(空格分隔): 协作开发 虚拟接口 Android单元测试首先是开发的一部分,目的是保证没有耦合的情况下任何输入都能保证正确的输出(包括异常),可以保证程序的健壮性...
  • ConcurrentHashMap
  • ConcurrentHashMap
  • 2016年10月26日 21:21
  • 655

spring MVC mock类单元测试(controller)

Spring从J2EE的Web端为每个关键接口提供了一个mock实现: MockHttpServletRequest 几乎每个单元测试中都要使用这个类,它是J2EE Web应用程序最常用...
  • dubinglin
  • dubinglin
  • 2017年04月06日 15:23
  • 699

Android单元测试-Mockito

本文为Mockito使用的学习笔记。Mockito概念相关添加 Mockito 依赖 testCompile "org.mockito:mockito-core:2.0.57-beta" Moc...
  • yaodong379
  • yaodong379
  • 2017年03月02日 20:25
  • 561

[OpenStack UT] 分析OpenStack中单元测试之mock & mox

在社区贡献OpenStackcode时,会经常短短的几行代码也要添加不少的UT,耗时耗力,mock & mox 是很好的实现隔离的单元测试模块, 理解它们能够更快的做UT的编码。 mock & ...
  • juvxiao
  • juvxiao
  • 2014年03月23日 22:55
  • 4136

比较完整的junit单元测试之-----mock模拟测试

介绍   本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例。 模拟(Mock)的概念    在软件开发的世界之外, "...
  • zhanganbo
  • zhanganbo
  • 2016年08月23日 09:42
  • 12701

在Python中使用mock模块进行单元测试

在进行单元测试时,有些模块对别的模块有依赖关系,但是这个模块在我们的控制之外,比如你要发一个HTTP请求,在这种情况下需 要用Mock对象来进行模拟。在Python当中,mock库提供了这个功能。...
  • preyta
  • preyta
  • 2016年11月21日 17:47
  • 3117
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单元测试-mock技术基础
举报原因:
原因补充:

(最多只允许输入30个字)