background image

Java 教程:

 JUnit 框架源代码详解

 概述

  在测试驱动的开发理念深入人心的今天,JUnit 在测试开发领域的核心地位日渐

 

稳定。不仅 Eclipse   

将 JUnit 

 

作为默认的 IDE 

 

集成组件,而且基于 JUnit 的各种测试框架也

 

在业内被广泛应用,并获得了一致好评。目前介绍 JUnit 书籍文章虽然较多,但大多数是

 

针对 JUnit 

 

的具体应用实践,而对于 JUnit 本身的机制原理,只是停留在框架模块的较浅

层次。

 

  本文内容完全描述 JUnit 

 

的细致代码实现,在展示代码流程 UML 图的基础上,

 

详细分析 JUnit 的内部实现代码的功能与机制,并在涉及相关设计模式的地方结合代码

 

予以说明。另外,分析过程还涉及 Reflection   

等 Java 语言的高级特征。

 

  本文的读者应该对 JUnit 的基本原理及各种设计模式有所了解,主要是面向从事 

Java 

 

相关技术的设计、开发与测试的人员。对于 C++,C# 程序员也有很好的借鉴作用。

 Junit 简介
  JUnit 的概念及用途
  JUnit 

 

是由 Erich Gamma   

和 Kent Beck 编写的一个开源的单元测试框架。它属于白盒测

 

试,只要将待测类继承 TestCase 

 

类,就可以利用 JUnit 的一系列机制进行便捷的自动测

试了。

 

   JUnit 的设计精简,易学易用,但是功能却非常强大,这归因于它内部完善的代码

 

结构。 Erich Gamma 

 

是著名的 GOF 

 

之一,因此 JUnit 中深深渗透了扩展性优良的设计模

 

式思想。 JUnit 

 

提供的 API 既可以让您写出测试结果明确的可重用单元测试用例,也提供

了单元测试用例成批运行的功能。在已经实现的框架中,用户可以选择三种方式来显示测

 

试结果,并且 显示的方式本身也是可扩展的。
  JUnit 基本原理

 

  一个 JUnit 测试包含以下元素:
 

 

 表 1. 测试用例组成  

 
  操作步骤:

 

  将 B 

 

通过命令行方式或图形界面选择方式传递给 R,R 自动运行测试,并显示结果。

  JUnit 中的设计模式体现