JUnit是一个开发源代码的Java测试框架,用在编写和运行可重复的测试脚本之上。他是单元测试框架体系xUnit的一个实例。JUnit框架功能强大,目前已成为Java单元测试的事实标准如果与Mock对象、HttpUnit、DBUnit等配合使用,基本上能满足日常测试要求。
JUnit特性:
一、可以使测试代码与产品代码分开,这更有利于代码的打包和测试代码的管理。
二、针对某一个类的测试代码,以较少的改动便可以应用另一个类的测试,JUnit提供了一个编写测试类的框架,使测试代码的编写更方便。
三、易于集成到程序中的构建过程中,JUnit和Ant的结合还可以实施增量开发。
四、JUnit的源代码是公开的,故而可以进行二次开发。
五、JUnit具有很强的扩展性,可以方便的对JUnit进行扩展。
JUnit有七个包,核心包为Junit.framwork和junit.runner。framework包负责整个测试对象的构建。runner负责测试驱动。
JUnit四个重要类即其他组成:
一、TestCase抽象类用来定义测试中的固定方法,TestCase是Test接口的抽象实现,由于TestCase是一个抽象类,因此不能被实例化,只能被继承。
二、TestSuite是由几个TestCase或其他的TestSuite构成的。可以很容易构成一个树形测试,每个测试都由持有另外一些测试的TestSuite来构成。
三、TestResult负责收集TestCase所执行的结果,将结果分类,分为客户可预测的错误和没有预测的错误,他还将测试结果转发到TestListener处理。
四、TestRunner是客户对象调用的起点,它负责对整个测试过程进行跟踪。它能够显示测试结果,并且报告测试进度。
五、Assert类用来验证条件是否成立,当条件成立时,assert方法保持沉默,若条件不成立时就抛出异常。
六、Test接口用来测试和收集测试结果,Test接口采用了Composite设计模式,它是单独测试的用例,聚合的测试模式以及测试扩展的共同接口。
七、TestListener包含四个方法:addError(),addFailuer(),startTest(),endTest(),它是对测试结果的处理和对测试驱动过程的工作特征进行提取。