培训教材JUnit培训.ppt_第1页
培训教材JUnit培训.ppt_第2页
培训教材JUnit培训.ppt_第3页
培训教材JUnit培训.ppt_第4页
培训教材JUnit培训.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,JUnit培训,2,内容概要,JUnit概述 JUnit基本概念 JUnit的软件结构 内容小结,3,JUnit概述,由Erich Gamma和Kent Beck编写的测试框架 是开放源码软件,在下载 是一种白盒测试法,是进行回归测试的工具 JUnit自定义包、类框架结构和接口 ,可以参阅下载文件中的javadoc目录内容,4,JUnit概述,测试阶段划分:单元测试、集成测试、系统测试 JUnit适用于Java开发人员在单元测试阶段,进行单个方法实现功能或者类本身的测试 JUnit需要测试者自己编程,编写的测试代码必须满足JUnit框架的要求 一般认为,JUnit

2、最适合用于XP(Extreme Programming:极限编程)开发中,5,JUnit概述:安装,下载安装程序:并解包 增加junit.jar到CLASSPATH。例如: set classpath=%classpath%;INSTALL_DIRjunit3junit.jar 测试安装成功与否:,6,JUnit概述:安装,三种方式的测试: 批处理文本方式 java junit.textui.TestRunner junit.samples.AllTests Awt图形测试运行方式 java junit.awtui.TestRunner junit.samples.A

3、llTests 基于Swing的图形测试方式 java junit.swingui.TestRunner junit.samples.AllTests,声明:在Jbuilder的IDE开发环境下,带有Junit的测试包,可 以直接使用。如果想使用最新版。也可以把它作为工具程序配 置到Tools菜单栏中使用。,7,被测试的代码文件,绿色显示工作类工作无误,已测类数量,测试耗时,浏览可测文件,开始测试按钮,测试结果详细描述,8,一个简单的例子,9,一个简单的例子,用JUNIT编写的测试代码,10,一个简单的例子,用Swing test runner运行测试代码: java junit.swingu

4、i.TestRunner TestCalculator,11,JUnit基本概念:TestCase,是JUnit提供的一个类,实现Test接口,继承 junit.framework.Assert 几乎我们编写的所有测试类都要继承TestCase 一个扩展TestCase类(即测试类)会有多个testXXX()方法,一个testXXX()方法就是一个测试。,12,JUnit基本概念:TestSuite,包含了一组相关的TestCase 如果你没有为你的TestCase定义一个suite,Junit会自动为你提供suite并将在TestCase中发现的所有测试都包含进来。 和TestCase一样,

5、作为JUnit的一个类实现Test接口 TestSuite类的suite()方法如同普通类中的main()方法一样,JUnit用来执行测试,13,用suite实现前面的例子,如果在calculator中加入了其他的方法:,14,Suite中可以包含suite 用suite.addTestSuite方法,15,JUnit基本概念:TestRunner,TestRunner是运行测试程序类,运行顺序如下 编译待测类和测试类,生成字节码 在命令行输入运行TestRunner或者在main()方法内运行junit.textui.TestRunner.run() Junit提供了三种运行器,分别为:te

6、stui.TestRunner;awtui.TestRunner;swingui.TestRunner;一种是文本方式,后两种是图形方式 都扩展于BaseTestRunner 测试成功,字符界面返回OK,图形显示条界面呈绿色,且没有failures和errors提示,16,JUnit基本概念:TestResult,TestResult收集了TestCase的执行结果。保存了所有的测试细节,通过或者失败 TestRunner 用TestResult来报告测试的结果,如果结果不是60,Junit会创建一个TestFailure 对象保存在TestResult中。 如果TestResult中没有Te

7、stFailure,说明代码是正确的,状态条显示为绿色,如果有则报告。,17,18,JUnit基本概念:TestResult,Failure与Error Failure是一个期望的被assert()方法检查到的失败 如果result的结果不等于60,则是一个Failure: Error是测试不可预料的,是意外的问题引起的错误。 如: ArrayIndexOutOfBoundsException,19,JUnit基本概念:TestListener,Juni框架提供了TestListener接口来帮助对象获取TestResult并创建有用的报告。 TestResult收集了测试的相关信息,Test

8、Runner报告这些信息。 TestRunners其实就是实现了TestListener接口,20,回顾,简单的说,就是: 一个TestRunner运行一个TestSuite 该TestSuite可以由一个或多个TestCases(或 者由其他的TestSuites)所组成。 运行的测试结果由TestResult收集, 由TestRunner来报告这些信息,21,JUnit基本概念:Fixture,Fixture:对类进行测试前准备的待测类测试环境 不同的待测类有不同的Fixture,但可以应用共同的Fixture,略作修改即可 不能将配置Fixture的代码放入测试类的构造方法中 JUnit

9、的TestCase类提供setUp()和tearDown()方法,分别完成Fixture的建立和拆除。,22,另一个例子,在Car类中获取汽车车轮数量方法,代码很简单,仅起例子作用:,public class Car public int getWheels() return 4; ,23,编写测试代码:类Car测试代码,import junit.framework.*; public class CarTest extends TestCase protected int expectedWheels; protected Car myCar; /建立构造方法,但不能用于进行测试环境的初始化

10、 public CarTest(String name) super(name); ,24,/建立测试的初始化环境Fixture protected void setUp() expectedWheels = 4; myCar = new Car(); /应用suite()来运行测试,suite()可以运行多个测试 public static Test suite() TestSuite suite= new TestSuite(); suite.addTest( new testCar( testGetWheels ) return suite; ,25,编写测试代码:类Car测试代码,pu

11、blic void testGetWheels() assertEquals(expectedWheels, myCar.getWheels(); /应用tearDown()来拆除建立的测试环境 public void tearDown() /应用main()来驱动测试 public static void main(String args) junit.textui.TestRunner.run(suite(); ,26,JUnit的软件结构:包,JUnit 共有六个包,分别为junit.awtui、junit.extensions、junit.framework、junit.runner、

12、junit.swingui、junit.textui 其中核心包是: junit.framework包负责构建整个测试对象的框架 junit.runner负责驱动测试程序,27,JUnit的软件结构:类,JUnit有四个重要类:TestResult、 TestSuite、TestCase 、TestRunner 。其中前三个类属于Framework包,后一个类在不同的环境下是不同的。 各个类的职责如下:,28,JUnit的软件结构:类,TestResult:收集TestCase执行的结果,将结果分为两类,用户可预测的Failure和不可预测的Error。同时将结果转发到TestListener

13、(该接口由TestRunner继承)处理 TestSuite:负责包装和运行所有的TestCase。,29,JUnit的软件结构:类,TestCase :客户测试类所要继承的类,负责测试时对客户类进行初始化,以及测试方法调用 TestRunner:用户对象调用的起点,负责对整个测试流程的跟踪。能够显示返回的测试结果,且报告测试进度,30,JUnit的软件结构:接口,两个重要的接口:Test和TestListener Test包含两个方法:run() 和countTestCases(),完成对测试动作特征的提取 TestCase和TestSuite都实现了该接口 TestListener包含四个方法:addError()、addFailure()、startTest()和endTest(),负责对测试结果的处理以及测试驱动过程的动作特征的提取 TestRunner实现了该接口,31,Assert方法,32,Assert方法,33,内容小结,JUnit用于开发人员进行单元测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论