java单元测试实例-使用JUnit进行单元测试_第1页
java单元测试实例-使用JUnit进行单元测试_第2页
java单元测试实例-使用JUnit进行单元测试_第3页
java单元测试实例-使用JUnit进行单元测试_第4页
java单元测试实例-使用JUnit进行单元测试_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

java单元测试实例_使⽤JUnit进⾏单元测试简介JUnit是⼀个Java编程语⾔的单元测试框架。JUnit在测试驱动的开发⽅⾯有很重要的发展,是起源于JUnit的⼀个统称为xUnit的单元测试框架之⼀。好处可以书写⼀系列的测试⽅法,对项⽬所有的接⼝或者⽅法进⾏单元测试。启动后,⾃动化测试,并判断执⾏结果,不需要⼈为的⼲预。只需要查看最后结果,就知道整个项⽬的⽅法接⼝是否通畅。每个单元测试⽤例相对独⽴,由Junit启动,⾃动调⽤。不需要添加额外的调⽤语句。添加,删除,屏蔽测试⽅法,不影响其他的测试⽅法。开源框架都对JUnit有相应的⽀持。环境配置笔者使⽤Maven(Java包管理⼯具)导⼊所需要的jar包:junitjunit4.12test基本⽤法测试代码和⽣成代码分开放置,Maven默认⽬录正好符号这个要求。代码⽬录被测试代码放在main下的java⽬录中,junit测试代码放在test下的java⽬录中,形成⼀⼀对应关系,测试代码使⽤Test开头命名。被测试MessageDemo代码:MessageDemo测试TestMessageDemo代码:MessageDemo基本的已经写好了,但是如何运⾏测试呢?还需要建⼀个运⾏测试的⽂件:MessageDemo好了,运⾏测试:控制台输出看到true表明测试成功,那么我们来尝试⼀下测试不成功是什么情况。修改TestMessageDemo代码:TestMessageDemo重新运⾏测试:控制台输出测试结果为false,并且指明了期望输出的结果No和实际输出的结果HelloWorld。JUnit断⾔什么是断⾔?刚开始我也很困惑,后来搞了⼤半天才明⽩断⾔就是"判断"。Junit所有的断⾔都包含在Assert类中。这个类提供了很多有⽤的断⾔⽅法来编写测试⽤例。只有失败的断⾔才会被记录。Assert类中的⼀些有⽤的⽅法列式如下:voidassertEquals(booleanexpected,booleanactual):检查两个变量或者等式是否平衡voidassertTrue(booleanexpected,booleanactual):检查条件为真voidassertFalse(booleancondition):检查条件为假voidassertNotNull(Objectobject):检查对象不为空voidassertNull(Objectobject):检查对象为空voidassertSame(booleancondition):assertSame()⽅法检查两个相关对象是否指向同⼀个对象voidassertNotSame(booleancondition):assertNotSame()⽅法检查两个相关对象是否不指向同⼀个对象voidassertArrayEquals(expectedArray,resultArray):assertArrayEquals()⽅法检查两个数组是否相等JUnit注解@Test:这个注释说明依附在JUnit的publicvoid⽅法可以作为⼀个测试案例。@Before:有些测试在运⾏前需要创造⼏个相似的对象。在publicvoid⽅法加该注释是因为该⽅法需要在test⽅法前运⾏。@After:如果你将外部资源在Before⽅法中分配,那么你需要在测试运⾏后释放他们。在publicvoid⽅法加该注释是因为该⽅法需要在test⽅法后运⾏。@BeforeClass:在publicvoid⽅法加该注释是因为该⽅法需要在类中所有⽅法前运⾏。@AfterClass:它将会使⽅法在所有测试结束后执⾏。这个可以⽤来进⾏清理活动。@Ignore:这个注释是⽤来忽略有关不需要执⾏的测试的。JUnit加注解执⾏过程beforeClass():⽅法⾸先执⾏,并且只执⾏⼀次。afterClass():⽅法最后执⾏,并且只执⾏⼀次。before():⽅法针对每⼀个测试⽤例执⾏,但是是在执⾏测试⽤例之前。after():⽅法针对每⼀个测试⽤例执⾏,但是是在执⾏测试⽤例之后。在before()⽅法和after()⽅法之间,执⾏每⼀个测试⽤例。JUnit执⾏测试测试⽤例是使⽤JUnitCore类来执⾏的。JUnitCore是运⾏测试的外观类。要从命令⾏运⾏测试,可以运⾏javaorg.junit.runner.JUnitCore。对于只有⼀次的测试运⾏,可以使⽤静态⽅法runClasses(Class[])。JUnit套件测试测试套件意味着捆绑⼏个单元测试⽤例并且⼀起执⾏他们。在JUnit中,@RunWith和@Suite注释⽤来运⾏套件测试。被测试MessageDemo代码:MessageDemo新建两个测试类,⽤来展⽰套件测试:测试TestMessageDemo代码:MessageDemo测试TestMessageDemo2代码:TestMessageDemo2TestSuite代码:carbon(1).pngTestRunner代码:carbon(2).png测试结果:控制台输出通过这样的⽅式,我们就可以⼀次运⾏多个测试了,看起来也不是很复杂哦!JUnit时间测试如果⼀个测试⽤例⽐起指定的毫秒数花费了更多的时间,那么Junit将⾃动将它标记为失败。timeout参数和@Test注释⼀起使⽤。是不是很强⼤?就像这样:@Test(timeout=1000)时间单位是毫秒。JUnit异常测试Junit⽤代码处理提供了⼀个追踪异常的选项。你可以测试代码是否它抛出了想要得到的异常。expected参数和@Test注释⼀起使⽤。⽐如这样:@Test(expected=ArithmeticException.class)JUnit参数化测试Junit4引⼊了⼀个新的功能参数化测试。参数化测试允许开发⼈员使⽤不同的值反复运⾏同⼀个测试。你将遵循5个步骤来创建参数化测试。⽤@RunWith(Parameterized.class)来注释test类。创建⼀个由@Parameters注释的公共的静态⽅法,它返回⼀个对象的集合(数组)来作为测试数据集合。创建⼀个公共的构造函数,它接受和⼀⾏测试数据相等同的东西。为每⼀列测试数据创建⼀个实例变量。⽤实例变量作为测试数据的来源来创建你的测试⽤例。⼀旦每⼀⾏数据出现测试

温馨提示

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

评论

0/150

提交评论