版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试技术基础单元测试工具JUnit1/42Review软件测试目标软件测试过程单元测试流程2/42教学目标教学目标了解JUnit测试流程了解JUnit测试环境了解JUnit测试中惯用方法技能要求学会用JUnit对java程序进行单元测试单元测试工具JUnit了解JUnit基本知识了解JUnit安装了解JUnit测试框架3/42JUnit使用JUnit安装JUnit概述单元测试工具JUnit4/42知识分析重点:
JUnit测试异常断言使用JUnit基本概念JUnit惯用类(TestCase、Assert、TestSuite)使用难点:
5/42TheTestingProblemsprogrammersShouldwrite
fewDoWhy?IamsobusyItisdifficult
6/42TheTestingProblemsProgrammersneedsuchkindoftool:
“Writingafewlinesofcode,thenatestthatshouldrun,orevenbetter,towriteatestthatwon'trun,thenwritethecodethatwillmakeitrun.”JUnitisthatkindoftool!7/42一个简单例子intadd(inta,intb){ returna+b;}
功效?JUnit概述8/42publicclassFirstTestExample{intadd(inta,intb){ returna+b;} publicstaticvoidmain(String[]args){ FirstTestExamplefta=newFirstTestExample();
System.out.println("Addvalueis:"+fta.add(2,3));
}}Java测试代码JUnit概述9/42importjunit.framework.TestCase;publicclassFirstTestExampleTestextendsTestCase{ publicvoidtestAdd(){assertEquals(3,newFirstTestExample().add(2,3));
}}JUnit概述JUnit测试代码10/42由ErichGamma和KentBeck编写测试框架开放源码软件,在下载一个白盒测试法,所以是由开发人员进行回归测试工具JUnit概述11/42支持语言Smalltalk,Java,C++,Perl等支持IDEJBuilder,VisualAge,Eclipse等JUnit自定义包、类框架结构和接口,能够参阅下载文件中javadoc目录内容。JUnit概述12/42JUnit适适用于Java开发人员在单元测试阶段,进行单个方法实现功效或者类本身测试JUnit需要测试者自己编程,编写测试代码必须满足JUnit框架要求普通认为,JUnit最适适用于XP(ExtremeProgramming:极限编程)开发中。JUnit概述13/42能够使测试代码与产品代码分开。针对某一个类测试代码经过较少改动便能够应用于另一个类测试。易于集成到测试人员构建过程中,JUnit和Ant结合能够实施增量开发。JUnit是公开源代码,能够进行二次开发。能够方便地对JUnit进行扩展。JUnit概述-优势优势14/42
使用断言方法判断期望值和实际值差异,返回Boolean值。
测试驱动设备使用共同初始化变量或者实例。测试包结构便于组织和集成运行。
支持图型交互模式和文本交互模式。
JUnit概述-特征特征15/42下载安装程序:并解包,版本junit3.8.1勿将JUnit.jar和JDK安装到同一个目录,不然可能找不到被测试类
找到junit.jar文件所在目录将此目录连同junit.jar文件添加进系统变量CLASSPATH中写进CLASSPATH目录(供参考)为:D:\junit\junit3.8.1\junit.jarJUnit安装16/42JUnit安装三种运行测试方式:批处理文本方式17/42被测试代码文件绿色显示工作类工作无误已测类数量测试耗时浏览可测文件退出测试按钮测试结果汇总开始测试按钮测试结果详细描述分别显示两个夹页swing界面测试JUnit安装18/42awt界面测试JUnit安装19/42一个简单例子JUnit使用20/42一个简单例子用JUNIT编写测试代码JUnit使用21/42TheFrameworkofJUnit22/42JUnit使用:TestCaseJUnit提供一个类,实现Test接口,继承
junit.framework.TestCase几乎我们编写全部测试类都要继承TestCase一个扩展TestCase类(即测试类)会有多个testXXX()方法,一个testXXX()方法就是一个测试。23/42JUnit3.8中.testXXX()测试方法必须满足下面几个条件:<1>public<2>void<3>无方法参数<4>方法必须以test开头.后面部分自定义。JUnit使用:TestCase24/42Assert超类所提供8个关键方法JUnit使用:Assert方法25/42课堂练习详见资料视频资料126/42课堂实践自己练习类中减、乘、除测试方法建立和使用27/42一个简单例子intDivide(inta,intb){ returna/b;}
除数为0?JUnit使用28/42期望会抛出异常处理方法:在将会抛出异常语句后断言Assert.fail()。申明异常Throwableth,发生异常时将异常赋值给Throwable,再进行断言,可用到Assert以下方法:assertNotNull(th);assertEquals(期望异常消息,实际异常消息)。JUnit使用:Assert方法29/42
public
void
testDivide2(){ Throwabletx=null; try{ cal.divide(4,0); Assert.fail();
} catch(Exceptionex){ tx=ex; }
Assert.assertNotNull(tx);
Assert.assertEquals(Exception.class,tx.getClass());
Assert.assertEquals("除数不能为零!",tx.getMessage()); }}一个方法能够有多个测试方法,输入不一样情况会有不一样testcase出现tx是Exception类型一旦发生异常,则tx一定不为空期望该行代码永远不会被执行,断言失败,停顿执行马上失败JUnit使用:Assert方法30/42例题讲解231/42JUnit使用:FixtureFixture:对类进行测试前准备待测类测试环境。不一样待测类有不一样Fixture,但能够应用共同Fixture,略作修改即可。不能将配置Fixture代码放入测试类结构方法中。JUnitTestCase类提供setUp()和tearDown()方法,分别完成Fixture建立和拆除。32/42TestRunner是运行测试程序类,运行次序以下编译待测类和测试类,生成字节码在命令行输入运行TestRunner或者在main()方法内运行junit.textui.TestRunner.run();测试成功,字符界面返回OK,图形显示条界面呈绿色,且没有failures和errors提醒JUnit使用:TestRunner33/42
假如JUnit测试未成功,会区分failures和errors。Failures是一个期望被assert()方法检验到失败errors则是意外问题引发错误,如ArrayIndexOutOfBoundsException34/42假如在没有IDE情况下,能够经过使用TestRunner类进行测试,如以下代码所表示
publicstaticvoidmain(String[]args){ junit.awtui.TestRunner.run(CalculatorTest.class); }35/42和TestCase一样,作为JUnit一个类实现Test接口对多个测试类同时进行测试,同时实现suite()JUnit基本概念:TestSuite36/42将测试实例加到TestSuite,返回TestSuite对象,例子以下:publicstaticTestsuite(){
TestSuitesuite=newTestSuite();
suite.addTest(newtestCar("testGetWheels"));
suite.addTest(newtestCar("testGetSeats"));
returnsuite;}37/42JUnit使用1、源代码与测试源码最好分别放置不一样源代码文件夹,包名最好一致。2、测试类必须继承junit.framework.TestCase,测试方法必须是publicvoidtest*(),*最好为被测试方法名,一个方法对应最少一个测试用列。3、Assert.assertEquals(期望值,实际值)。可直接使用assertEquals,TestCase继承了Assert。小结38/424、期望会抛出异常处理方法:
在将会抛出异常语句后断言Assert.fail()。申明异常Throwableth,发生异常时将异常赋值给Throwable,再进行断言,可用到Assert以下方法:assertNotNull(th);assertEquals(期望异常消息,实际异常消息)。小结JUnit使用39/425、TestCasesetUp()方法会在一个测试类每个测试用列执行之前执行,通惯用于初始化资源。6、TestCase
tearDown()方法会在一个测试类每个测试用例执行之后执行,通惯用于销毁资源。JUnit使用小结40/427、执行测试类方法:junit.swingui.TestRunner.run(测试类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业通风空调施工协作协议范例版B版
- 专业木材买卖协议:2024年软木采购协议版B版
- 2024私人非新车买卖协议样本版
- 2025年度智慧农业项目实施合同4篇
- 二零二五年度网络安全应急响应托管服务合同
- 业务共赢合作详细协议版A版
- 二零二五版国际工程承包合同模板及项目管理要求2篇
- 2025年度智能建筑安装施工安全责任协议书3篇
- 个人借款协议模板2024定制版版B版
- 2025年水田承包权流转与农业人才培养合同3篇
- 医养康养园项目商业计划书
- 《穿越迷宫》课件
- 《C语言从入门到精通》培训教程课件
- 2023年中国半导体行业薪酬及股权激励白皮书
- 2024年Minitab全面培训教程
- 社区电动车棚新(扩)建及修建充电车棚施工方案(纯方案-)
- 项目推进与成果交付情况总结与评估
- 铁路项目征地拆迁工作体会课件
- 医院死亡报告年终分析报告
- 建设用地报批服务投标方案(技术方案)
- 工会工作人年度考核个人总结
评论
0/150
提交评论