当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言:
 

 

 ·java构造函数运行解析     »显示摘要«
    摘要:源代码如下import java.util.*;class super1{{ system.out.println("super1 ok");} super1() { system.out.println("3"); }}class employee extends super1{ private string name; private double sa......
    摘要:converting between applets and applicationsto convert an application to applet: create an html page with an applet tag to invoke the applet. delete the main method. alter the class header so that it e......


JUnir源码分析(一)
一.引子

junit源码是我仔细阅读过的第一个开源项目源码.阅读高手写的代码能学到一些好的编程风格与实现思路,这是提高自己编程水平行之有效的方法,因此早就想看看这些赫赫有名的框架是怎么回事了.今天就拿最简单的junit下手,也算开始自己的源码分析之路.

【程序编程相关:Java中Exception的处理

【推荐阅读:JBuilder+JBoss+tomca

  【扩展信息:关于cookie目录的总结(JSP和Se

junit作为最著名的单元测试框架,由两位业界有名人士协力完成,已经经历了多次版本升级(了解aspx">junit基础.aspx">junit实践).junit总体来说短小而精悍,有不少值得我们借鉴的经验在里面;但是也有一些不足存在,当然这对于任何程序来说都是难免的.

下面我们将从整体(宏观)与细节(微观)两方面来分析junit源码,以下分析基于3.8.1版.

 

二.宏观——架构与模式

打开源码文件,你会发现junit源码被分配到6个包中:junit.awtui.junit.swingui.junit.textui.junit.extensions.junit.framework.junit.runner.其中前三个包中包含了junit运行时的入口程序以及运行结果显示界面,它们对于junit使用者来说基本是透明的.junit.runner包中包含了支持单元测试运行的一些基础类以及自己的类加载器,它对于junit使用者来说是完全透明的.

剩下的两个包是与使用junit进行单元测试紧密联系在一起的.其中junit.framework包含有编写一般junit单元测试类必须是用到的junit类;而junit.extensions则是对framework包在功能上的一些必要扩展以及为更多的功能扩展留下的接口.

junit提倡单元测试的简单化与自动化.这就要求junit的使用要简单化,而且要很容易的实现自动化测试.整个junit的设计大概也是遵循这个前提吧.整个框架的骨干仅有三个类组成(下图所示).

       如果你掌握了testcase.testsuite.basetestrunner的工作方式,那么你就可以随心所欲的编写测试代码了.

       下面我们来看看junit.framework中类之间的关系,下图是我根据源代码分析出来的,大部分关系都表示了出来.

 

先来看看各个类的职责.assert类提供了junit使用的一整套的断言,这套断言都被testcase继承下来,assert也就变成了透明的.
...   下一页
 ·j2sdk 1.4中的新功能类     »显示摘要«
    摘要:1. nio1.1. 说明:在新的i/o系统当中,我们将主要使用channel和buffer来描述我们底层的操作。1.2. 模型:1.3. 对channel进行读写:/** * @author cenyongh@mails.gscas.ac.cn */public class copyfile { public static void main(string[] args) throws exce......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE