软件测试-第08章-软件测试工具JUnit介绍_第1页
软件测试-第08章-软件测试工具JUnit介绍_第2页
软件测试-第08章-软件测试工具JUnit介绍_第3页
软件测试-第08章-软件测试工具JUnit介绍_第4页
软件测试-第08章-软件测试工具JUnit介绍_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、陈翔 博士 南通大学 计算机科学与技术学院,软件测试技术,2020/9/4,1,Junit介绍,9/4/2020,南通大学计算机科学与技术学院,2,开源的Java测试框架 主要特征: 测试代码与产品代码分开 提供了编写测试类的框架 通过与Ant结合,易于集成到程序的构建过程中 ,实施增量开发 源代码公开,易于二次开发 可扩展性强 下载地址 /,JUnit,9/4/2020,南通大学计算机科学与技术学院,3,1997年Erich Gamma和Kent Beck为Java语言创建了一个简单有效的单元测试框架,Erich Gamma 设计模式作者之一,Kent

2、Beck 提出软件开发方法“极限编程” 重构:改善既有代码的设计的作者,Eclipse,9/4/2020,南通大学计算机科学与技术学院,4,开源软件 基于Java的可扩展开发平台 仅提供框架,通过插件的方式构筑开发环境 前身是IBM公司开发的Visual Age for Java,2001年11月贡献给开源社区,现在由非营利软件供应商联盟Eclipse基金会管理 下载地址:,Eclipse的版本变迁,9/4/2020,南通大学计算机科学与技术学院,5,2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构 2007年6月,稳定版3.3发布 2008

3、年6月发布代号为Ganymede的3.4版 2009年7月发布代号为GALILEO的3.5版 2010年6月发布代号为Helios的3.6版 2011年6月发布代号为Indigo的3.7版 2011年8月6日Eclipse基金会为支持JAVA7发布Eclipse 3.8M1,9/4/2020,南通大学计算机科学与技术学院,6,在Eclipse中使用JUnit,9/4/2020,南通大学计算机科学与技术学院,7,建立一个被JUnit测试的类 建立对应的JUnit Test类 针对自动生成的代码进行修改 执行测试用例,建立一个被JUnit测试的类,9/4/2020,南通大学计算机科学与技术学院,8

4、,建立对应的JUnit Test类,9/4/2020,南通大学计算机科学与技术学院,9,JUnit 4新的特征,针对自动生成的代码进行修改,9/4/2020,南通大学计算机科学与技术学院,10,测试用例执行通过,9/4/2020,南通大学计算机科学与技术学院,11,Green Bar,Keep the bar green to keep the code clean,测试用例执行失败,9/4/2020,南通大学计算机科学与技术学院,12,Assert方法(测试用例预期输出),9/4/2020,南通大学计算机科学与技术学院,13,assertArrayEquals 判断两个数组是否相等 asse

5、rtEquals 判断两个对象是否相等 assertFalse和assertTrue 判断布尔变量是否为False或True assertNotNull和assertNull 判断一个对象是否为空 assertNotSame 判断两个引用是否指向同一个对象 Fail 让测试用例失败,Exception测试,9/4/2020,南通大学计算机科学与技术学院,14,对Test传入expected参数值,即可测试异常,暂时忽略这个测试用例,测试用例集的构造,9/4/2020,南通大学计算机科学与技术学院,15,使用方法 创建一个空类作为测试用例集入口 用RunWith、SuiteClasses注释修饰

6、这个空类; 将Suite.class作为参数传入RunWith注释,以提示JUnit将此类指定为运行器; 将需要测试的类组成数组作为SuiteClasses的参数。,9/4/2020,南通大学计算机科学与技术学院,16,参数化测试,9/4/2020,南通大学计算机科学与技术学院,17,为参数化测试类用RunWith注释指定特殊的运行器:Parameterized.class; 在测试类中声明几个变量,分别用于存储期望值和测试用的数据,并创建一个使用着几个参数的构造函数; 创建一个静态(static)测试数据供给(feed)方法,其返回类型为Collection,并用Parameter注释以修饰

7、; 编写测试方法(用Test注释)。,9/4/2020,南通大学计算机科学与技术学院,18,Ant,9/4/2020,南通大学计算机科学与技术学院,19,基于Java的build工具 类似于Unix中的make工具 配置文件基于XML 主要优点 跨平台 操作简单 易于集成到各种开发环境内,典型的项目层次结构,9/4/2020,南通大学计算机科学与技术学院,20,src目录:存放文件。 bin目录:存放编译后的文件。 lib目录:存放第三方JAR包。 dist目录:存放打包,发布以后的代码。,9/4/2020,南通大学计算机科学与技术学院,21,Ant build.xml实例,9/4/2020,

8、南通大学计算机科学与技术学院,22,运行结果,9/4/2020,南通大学计算机科学与技术学院,23,标签,9/4/2020,南通大学计算机科学与技术学院,24,每个构建文件对应一个项目。标签是构建文件的根标签。它可以有多个内在属性,各个属性的含义表示如下: default表示默认的运行目标,这个属性是必须的。 basedir表示项目的基准目录。 name表示项目名。 description表示项目的描述。,标签,9/4/2020,南通大学计算机科学与技术学院,25,一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。 name表示名称,这个属性是

9、必须的。 depends表示依赖的目标。 if表示仅当属性设置时才执行。 unless表示当属性没有设置时才执行。 description表示项目的描述。,标签,9/4/2020,南通大学计算机科学与技术学院,26,该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下: ,标签,9/4/2020,南通大学计算机科学与技术学院,27,该标签用来生成一个JAR文件,其属性如下。 destfile表示JAR文件名。 basedir表示被归档的文件名。 includes表示被归档的文件模式。 excludes表示被排除的文件模式。,9/4/2020,南通大学计算机科学与技术学院

10、,28,该标签用于编译一个或一组java文件,其属性如下。 srcdir表示源程序的目录。 destdir表示class文件的输出目录。 include表示被编译的文件的模式。 excludes表示被排除的文件的模式。 classpath表示所使用的类路径。 debug表示包含的调试信息。 optimize表示是否使用优化。 verbose 表示提供详细的输出信息。 fileonerror表示当碰到错误就自动停止。,标签,9/4/2020,南通大学计算机科学与技术学院,29,该标签用来执行编译生成的.class文件,其属性如下。 classname 表示将执行的类名。 jar表示包含该类的JA

11、R文件名。 classpath所表示用到的类路径。 fork表示在一个新的虚拟机中运行该类。 failonerror表示当出现错误时自动停止。 output 表示输出文件。 append表示追加或者覆盖默认文件。,标签,9/4/2020,南通大学计算机科学与技术学院,30,该标签用于删除一个文件或一组文件,其属性如下。 file表示要删除的文件。 dir表示要删除的目录。 includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。 failonerror 表示指定当碰到错误是否停止,默认值是自动停止。 verbose表示指定是否列出所删除的文件,默认值为不列出。,标签,9/4/

12、2020,南通大学计算机科学与技术学院,31,该标签用于文件或文件集的拷贝,其属性如下。 file 表示源文件。 tofile 表示目标文件。 todir 表示目标目录。 overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。 includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。 failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。 verbose 表示制定是否显示详细信息,默认值不显示。,Ant与JUnit结合,9/4/2020,南通大学计算机科学与技术学院,32,通过junit标签和junitreport标签 Junit标签 属性printsummary、fork、showoutput、haltonerror

温馨提示

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

评论

0/150

提交评论