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 中的设计模式体现