1.2Junit单元测试工具
JUnit---SourceForge项目---IBMCommon Public License ---官网:www.junit.org
ASP,C++,c#,Effel,Delphi,Perl,PHP,Python,REBOL,Smalltalk,Visual Basic。
xUnit的目标:1.开发人员写测试代码,提供一个测试框架,减少重复性劳动2.创建并保留测试,将测试集中在一起,用已有的测试创建新的测试。
Junit的好处:
可以使测试代码与产品代码分开
针对某个类的测试代码,通过较少的改动便可以将其应用于另一个类的测试
易于集成到测试人员的构建中,JUnit和Ant的结合实施增量开发
Junit是公开源代码的,可以进行二次开发
可以方便的对JUnit进行扩展
Junit测试编写的原则:
简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写
使测试单元保持持久性
可以利用既有的测试来编写相关的测试
Junit的特征:
使用断言方法来判断期望值和实际值的差异,返回Boolean值
测试驱动设备使用共同的初始化变量或实例
测试包结构便于组织和集成运行
支持图形交互模式和文本交互模式
JUnit共有7个包,核心的包就是junit.framework和junit.runner。Framework包负责整个测试对象的架构,Runner包负责测试驱动。
JUnit有4个重要的类:TestSuite,TestCase,TestResult,TestRunner,前三个属于Framework包,后一个类在不同的环境下是不同的。后一个类在不同的环境中是不同的,文本环境和图形界面
TestResult:负责收集TestCase所执行的结果,客户可以预测的Failure和没有预测的Error。同时负责将测试结果转发给TestListener(该接口由TestRunner集成)进行处理
TestRunner:客户对象调用的起点,负责对整个测试流程进行跟踪。能够显示返回的测试结果,并报告测试的进度
TestSuite:负责包装和运行所有的TestCase
TestCase:客户测试类所要继承的类,负责测试时对客户类进行初始化以及测试方法的调用.
两个重要的接口:Test,TestListener
Test:包含两个方法:run(),countTestCases()-->用于对测试动作特征的提取
TestListener:addError(),addFailure(),startTest(),endTest()-->用于对测试结果的处理以及测试驱动开发的动作的特征的提取。
Junit框架组成:TestCase(测junit.swingui.TestRunner试用例),TestSuite(测试集),TestResult(测试结果描述与记录),TestListener(事件监听者),TestFailure(测试失败),AssertionFailedError.
Junit和Eclipse的集成的处理可以参考《JUnit in Action》
Junit的命令行处理:java junit.textui.TestRunner xxx
1.3JUnit实例
1.3.1. 开发工具:
Eclipse、JUnit、Ant
1.3.2. 编码实现三角形类型判断程序:
class Triangle{ private double a, b, c; public Triangle ( double a, double b, double c ){ this.a = a; this.b = b; this.c = c; } /* 返回值为 1 表示是等边三角形 返回值为 2 表示是等腰三角形 返回值为 3 表示是其他种类三角形 返回值为-1 表示不能构成三角形 */ public int type (){ //to be added } } |
1.3.3、基于 JUnit 设计测试用例,使得满足如下条件
(1)包含不能构成三角形的测试用例
(2)包含构成等边三角形的测试用例
(3)包含构成等腰三角形的测试用例(提示:需要三个测试用例)
(4)包含构成其他种类三角形的测试用例
(5)三角形有一条边是非正数
4、编写 ant 脚本驱动测试用例
包括测试用例执行和测试报表生成
备注:个人使用的JVM是Open JDK6.0,eclipse是3.8 Juno,JUnit使用的是4.11