3) 框架常见类介绍
JUnit包含6个包(package):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.framework包,所以下面我就将这个包下的类作一介绍。
以上是这个包下的类图,为方便理解,我将Throwable类和Error类也放了进来,注意它们是JDK提供的类,非本包的类。
接口Test、抽象类TestCase、类TestSuite之间的关系
Test是接口(interface),定义有方法run,TestCase和TestSuite都实现了该接口,前面我们提到TestSuite包含TestCase, TestSuite有一个Vector成员,Vector的元素就是它包含的TestCase,当然也可以是子TestSuite,所以为便于管理,TestSuite只认Test接口,在它看来TestSuite包含的是Test对象,而不用细分为TestCase和子TestSuite。对测试套run方法的调用,相应地就会递归调用它所包含的用例run方法和子测试套run方法。这里使用到了Composite设计模式,另外,从命令调用(run命令)与命令实现分离的角度看又能看到Command设计模式的影子。
JUnit包含6个包(package):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.framework包,所以下面我就将这个包下的类作一介绍。
以上是这个包下的类图,为方便理解,我将Throwable类和Error类也放了进来,注意它们是JDK提供的类,非本包的类。
接口Test、抽象类TestCase、类TestSuite之间的关系
Test是接口(interface),定义有方法run,TestCase和TestSuite都实现了该接口,前面我们提到TestSuite包含TestCase, TestSuite有一个Vector成员,Vector的元素就是它包含的TestCase,当然也可以是子TestSuite,所以为便于管理,TestSuite只认Test接口,在它看来TestSuite包含的是Test对象,而不用细分为TestCase和子TestSuite。对测试套run方法的调用,相应地就会递归调用它所包含的用例run方法和子测试套run方法。这里使用到了Composite设计模式,另外,从命令调用(run命令)与命令实现分离的角度看又能看到Command设计模式的影子。