junit源码探秘(一):准备
1.1 题引
前几天和朋友聊天,朋友说你作为自动化测试?丝,居然没有读过Junit的源码,实在是不应。于是下定决心认真研究一下Junit的源码,通过学习Junit源码,希望从中学到一些好的编程风格和实现思路以及自动化工具设计的思想。
JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。这两个牛人中 Erich Gamma 是 GOF 之一;Kent Beck 则在 XP 中有重要的贡献。
JUnit设计的非常小巧,但是功能却非常强大。主要有以下特性:
1) 提供的API可以让你写出测试结果明确的可重用单元测试用例
2) 提供了三种方式来显示你的测试结果,而且还可以扩展
3) 提供了单元测试用例成批运行的功能
4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导
5) 整个框架设计良好,易扩展
本次学习Junit3.8作为例子进行学习。
1.2 简单Junit例子
首先用一个完整实例来说明 JUnit 的使用。由于本次的学习分析对象是 JUnit 的实现代码(即源码),因而Junit的使用不在深入讨论中;整个学习调试跟踪过程中,引用比较简单的加减乘除运算作为测试代来研究源码。
被测试代码类如下:
测试类代码如下:
另外,为了深入研究源码,在调试跟踪过程中使用Junit Test和Java Application两种方式交叉调试,所以在Junit源码中加入运行参数,如下图所示,主要以Junit默认的文本运行方式(即textui方式)