Unit是一种可重复编写Java棵序测试的框架,丰要用于单元测试。
unit的目标
· 创建一个通用的测试框架,将测试代码封装入对象中,从而使开发者同步设计并配置自己的单元测试。
· 让测试代码不会因为时间推移而变化,具有保值性,使测试代码标准化。从而保证编写原始测试代码之外的人也可以执行和维护测试,这样,多人的测试用例联合和执行成为可能而不会导致混乱。
· 在新创建的测试用例和旧的测试用例之间起到杠杆作用,Junit框架能够为重复测 试提供便利。将测试代码从系统代码中剥离开,二者可同步发展。JLhit的框架成员逻辑分析被测试的对象(类、多个类、子系统)。对测试目标进行测试的方法与过程集合,可将其称为测试用例(Testcase)测试事务的集合,可容纳多个测试用例,将其称作测试组件(Testsujte)。测试结果(TenResult)的描述与记录。
· 每一个测试方法所发生的与预期不一致状况的描述,称其测试失败(TestFailure)
· JUnitFramework中的出错异常(AssertionFailedError)。JUnk框架功能以及原理描述
· 测试接口与测试用例(TestCase)、测试组件(TestSuite)形成了复台(Coinposite)结构,Run(TestResult)则是Composite Method。Test为Component,派生出的 TestCase为Leaf,是测试的执行元素:TestSuite为Composite,可通过addTest(Test)来容纳Test组合(TestCase or TestSuite)形成测试包。
·TestCase可在框架中视为测试单元的运行实体。用户可以通过它派生自定义的 试过程与方式(单元),利用CommandPattern与CompositePattern使其形成可组合装配的可扩展测试批处理。TestCase本身的运作操作为mn(TestResuIt),其中 分别执行setUp(),runTestO,tearDown0来架构测试过程。Template Method Pattem使用户无须了解执行框架的过程细节.而只需熏定义特性化的测试预处理、测试单元过程以及测试完毕,测试三个TemplateMethod能使测试正确工作。
· 用户层可通过Java的匿名内部类(anonymous inner classes)来集成化重载runTest(1形成特性测试类,胁it 3 0版本以后则支持利用Java的Class属性来动态框架后台生成这些特性测试单元类,用户只需在TestCase派生类的test)(xxn即可,在Suite中使用return newTestSuite(MyTestCase class)后,该TestSuite包含了所有testXXX为测试过程的TestCase类对象集合。
· Assert类包含了assertEqual()、assertSame()、assertTrue()等静态工具方法 (statictoolsmethods),为使用户对系统所了解的类型尽可能少,JUnit框架将Assert作为了TestCase的超类,TestCase同时继承了Assert的实现与Test接口(classAdepterpattern)。用户可在TestCase中直接调用这些assertXXX(..)等静态工具。