单元测试-mock技术基础

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

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

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

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

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

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

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

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

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

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

               等等

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

              直接返回值验证

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

              日志文件输出

              控制台信息输出

              网络数据

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

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

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

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

   

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

相关文章推荐

java单元测试 spring mock的使用

  • 2011年09月02日 16:59
  • 21KB
  • 下载

基于mock对象和JUnit框架简化Spring Web组件单元测试

对于Java组件开发者来说,他们都盼望拥有一组能够对组件开发提供全面测试功能的好用的单元测试。一直以来,与测试独立的Java对象相比,测试传统型J2EE Web组件是一项更为困难的任务,因为Web组件...

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

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

利用spring的mock类进行单元测试

利用spring的mock类进行单元测试:     spring框架提供了大量测试的mock类,包括与jndi,porlet,web应用相关的mock类。尤其是web应用相关的mock类,可以大大提...

Java单元测试(Junit+Mock+代码覆盖率)

单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复...
  • sdmxdzb
  • sdmxdzb
  • 2015年06月12日 08:56
  • 414

google mock C++单元测试框架

google mock C++单元测试框架 2012-03-12 09:33:59 分类: C/C++ Content ...

浅谈单元测试中Mock的使用

何为mock? mock测试就是在测试过程中中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 mock对象 mock对象就是真实...
  • sogouqa
  • sogouqa
  • 2015年04月23日 01:30
  • 944

Java单元测试(Junit+Mock+代码覆盖率)

原文见此处单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修...

基于spring与mockito单元测试Mock对象注入

基于spring与mockito单元测试Mock对象注入 1.关键词 单元测试、spring、mockito   2.概述 单元测试目前已经成为项目中保证代码质量的一种必要方法,对于一些不易构造或者不...

C++单元测试二:何时Mock及其是与非

什么时候需要mock 在前面一部分(C++单元测试一:并非看上去那么简单——几个很实际的问题),我遇到的问题是:一个单元测试工程只能测一个被测类(其实前文的后记部分也已指出,其实创建新工程也不是特别...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单元测试-mock技术基础
举报原因:
原因补充:

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