
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、junit深入浅出junit是一个回来测试框架,是程序员测试白盒测试,继承testcase类就可以用junit举行测试了 import junit.framework.testcase; public class test tends testcase public vo testa() assertequa(1, 1); 1、编写的测试类必需继承junit.framework.testcase2、里面的测试办法命名应当以test开始,必需是public void 而且不能有参数,否则不能用法junit3、尽量一个testxxx办法对一个功能单一的办法举行测试4、用法assertequals等
2、junit.framework.testcase中的断言办法来推断测试结果正确与否 junit提供了一对办法,一个在运行测试办法前初始化一些必备的条件,而另外一个就是测试完毕后去掉初始化的条件up()- testxxx()- teardown() import hb.util.samplecalculator; import junit.framework.testcase; public class testsample extends testcase public samplecalculator calculator = null; public void testadd() int
3、relt = calculator.add(50, 20); system.out.print(result); assertequals(70, result); public void testsubation() int abc = calculator.subtration(50, 20); system.out.println(abc); assertequals(30, abc); /每次测试一次的时候先执行setup()这个办法 override public void setup() calculator = new samplecalculator(); system.out
4、.println("set up!"); /每次测试一次完成之后执行teardown()这个办法 override public void teardown() system.out.println("teardown"); error和failures的区分?errors:表示程序本身的错误(程序有规律问题) import junit.framework.testcase; public class errortest extends testcase public void testerror() assertequals(3, 3); int re
5、sult = 8 / 0; failures:表示测试失败(结果与期望的值不全都) import junit.framework.testcase; public class testfailure extends testcase public void testfailure() assertequals(5, 3); 因此,我们在写测试程序的时候要先保证errors是没有错误的,然后再来看failures有没有错误 junit4.x利用了java5的特性(注释annotation)的优势,比3.x用法起来越发便利容易,它不是容易的旧版本升级,它是一个全新的框架,囫囵框架的报结构已经彻底转
6、变,但4.x版本任然能够很好的兼容旧版本的测试套件。 利用junit4.x的注解方式测试 import ic org.junit.assert.*; import hb.util.calculator; import org.junit.after; import org.junit.afterclass; import org.junit.before; import org.junit.beforeclass; import org.junit.ignore; import org.junit.test; public class ttest private calculator calc
7、ulator = new calculator(); /在全部办法运行之前运行 beforeclass public static void beforeclass() system.out.println("-beforeclass"); /在全部办法运行之后运行 afterclass public static void afterclass() system.out.println("-afterclass"); /每个测试办法运行之前运行 before public void before() system.out.println("=
8、before"); /每个测试办法运行之后运行 after public void after() system.out.println("=after"); test public void testadd() int result = calculator.add(3, 6); assertequals(9,result); system.out.println("testadd() is ok"); test public void testdivision() system.out.println("in test divis
9、ion"); ignore /表示这个办法是不被运行的 test (expect=java.lang.arithmeticexception.class,out=100) /timeout表示要求办法在100毫秒内运行完成,否则报错 public void testdivide() int z = calculator.subtration(8,2); 运行结果: -beforeclass =before testadd() is ok =after =before in test division =after -afterclass 结论:beforeclass - before
10、 - test - after - afterclass 1、注释before与办法setup()办法类似2、注释after办法与teardown()办法类似3、测试期望异样和超时时光,例如test(timeout=100),我们给测试函数设定一个执行时光,超过了这个时光(100毫秒),它们就会被系统强行终止,并且系统还会向你汇报该函数结束的缘由是由于超时,这样就能发觉bug了;同时还可以测试期望的异样test(expected=lllegalargumentexception.class)4、ignore:忽视的测试办法,标注的含义某些办法尚未完成,暂不参加此次测试5、beforeclass
11、:针对全部测试,在全部测试办法执行前执行一次,且必需为public static void6、afterclass:针对全部测试,在全部测试办法执行结束后执行一次,并且必需为public static void java5新添加的新特性,可以用法import进来某个class的静态members,主要有两种表现形式:1、引进某个特定的静态成员import static packagename.classname.staticmembername;2、引进全部的静态成员import static packagename.classname.*;这样引进后,就可以像自身成员那样用法import进来
12、的成员,上面代码中assertequals这个办法就是这么引用过来用法的。 批量处理的学习?办法引入一种“测试套件”的概念,junit提供了一种批量运行测试类的办法,叫做测试套件。测试套件的写法需要遵循一下原则:1、创建一个空类作为测试套件的入口,2、用法注解org.junit.runner.runwith和org.junit.runners.suite.suitclasses修饰这个空类3、将org.junit.runners.suite作为参数传入给注解runwith,以提醒junit为此类测试用法套件运行器执行4、将需要放入此测试套件的测试类组成数组作为注解suiteclasses的参数
13、5、保证这个空类用法public修饰,而且存在藏匿的不带任何参数的构造函数 /该类是用来测试user类这个办法的 import static org.junit.assert.*; import hb.util.user; import org.junit.test; public class testuser test public void testgetname() assertequals("黄彪", new user().getname(); /该测试类是用来测试类t这个办法的 import hb.util.t; import static org.junit.a
14、ssert.*; import org.junit.test; public class ttest test public void testadd() int result = new t().add(5, 3); assertequals(8,result); /将testuser、ttest这个两个测试类一并处理 import org.junit.runner.runwith; import org.junit.runners.suite; import org.junit.runners.suite.suiteclasses; runwith(suite.class) /告诉junit此类测试用法套件运算至星器 suiteclasses(testuser.class,ttest.class)/需要测试的类的办法 public class alltest 代码规范?1、单元测试的代码应位于单独的source folder下,即与src同一级别2、测试类应当与被测试类位于统一package,即src和自己建立的测试er名目相同3、挑选有测试意义的测试办法名,单元测试办法名均需用法te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全域商业策划合同范本
- 供货协议书简单版
- 合作购买汽车合同范本
- 印刷项目采购服务合同范本
- 参加军事任务申请书
- 加盟授权合同范本
- 仓库电源维修合同范本
- 买期房购买合同范本
- 包车物流合同范本
- 羊毛疔术后护理
- 2025年安徽职业技术学院单招职业技能测试题库一套
- 开启新征程 点亮新学期+课件=2024-2025学年高一下学期开学家长会
- 压力容器考试审核考试题库(容标委气体协会联合)
- 人教版(2025版)七年级下册英语UNIT 1 Animal Friends 单元整体教学设计(6个课时)
- 2025年春季学期学校德育工作计划及安排表
- 2025年山东商务职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 海洋自主无人系统跨域协同任务规划模型与技术发展研究
- 校园体育活动的多元化与健康促进
- 新中式养生知识培训课件
- 山东省临沂市地图矢量课件模板()
- 学习2025年全国教育工作会议心得体会
评论
0/150
提交评论