当前位置: 首页 > news >正文

软件测试2019:第二次作业

Junit单元测试

一:Junit是什么?

Junit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sunit的xunit家族中最为成功的一个。 Junit有它自己的Junit扩展生态圈。多数Java的开发环境都已经集成了Junit作为单元测试的工具。

Junit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何完成功能和完成什么样的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

二:单元测试

单元测试:是针对一个独立的工作单元进行正确性验证的测试。有时也被称为程序员测试,以同QA测试、客户测试相区分。java的单元测试:在Java程序中,一个工作单元通常是指一个方法,那么也就是对一个方法进行测试。Junit:是一个单元测试框架,方便程序员进行单元测试代码的编写。

三:Junit框架中的几个对象类

(1) TestCase抽象类——定义测试中固定方法 

1.TestCase是Test接口的抽象实现,其构造函数TestCase根据输入的测试名称name创建一个测试实例。由于每一个TestCase在创建时都要有一个名称,若某测试失败了,便可识别出是哪个测试失败。  

2.TestCase类中包含的setup()、tearDown()方法。setUp()方法集中初始化测试所需的所有变量和实例,并且在依次调用测试类中的每个测试方法之前再次执行setUp()方法。tearDown()方法则是在每个测试方法之后,释放测试程序方法中引用的变量和实例。  

3.开发人员编写测试用例时,只需继承TestCase,来完成run方法即可,然后Junit获得测试用例,执行它的run方法,把测试结果记录在TestResult之中。

(2)Assert静态类——一系列断言方法的集合 

1. Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正确,即测试失败,Assert类就会抛出一个AssertionFailedError异常,Junit测试框架将这种错误归入Failes并加以记录,同时标志为未通过测试。如果该类方法中指定一个String类型的传参则该参数将被做为AssertionFailedError异常的标识信息,告诉测试人员改异常的详细信息。  

2. Junit 提供了6大类31组断言方法,包括基础断言、数字断言、字符断言、布尔断言、对象断言。  

3. 其中assertEquals内部逻辑判断使用equals()方法,这表明断言两个实例的内部哈希值是否相等时,最好使用该方法对相应类实例的值进行比较。而assertSame内部逻辑判断使用了Java运算符“==”,这表明该断言判断两个实例是否来自于同一个引用,最好使用该方法对不同类的实例的值进行比对。asserEquals该方法对两个字符串进行逻辑比对,如果不匹配则显示着两个字符串有差异的地方。ComparisonFailure类提供两个字符串的比对,不匹配则给出详细的差异字符。

(3)TestSuite测试包类——多个测试的组合

1. TestSuite类负责组装多个TestCases。待测得类中可能包括了对被测类的多个测试,而TestSuit负责收集这些测试,使我们可以在一个测试中,完成全部的对被测类的多个测试。  

2. TestSuite类实现了Test接口,且可以包含其它的TestSuites。它可以处理加入Test时的所有抛出的异常。     

3. TestSuite处理测试用例有6个规约(否则会被拒绝执行测试)

A 测试用例必须是公有类          

B 测试用例必须继承与TestCase类            

C 测试用例的测试方法必须是公有的      

D 测试用例的测试方法必须被声明为Void         

E 测试用例中测试方法的前置名词必须是test         

F 测试用例中测试方法误任何传递参数

(4)TestResult结果类和其它类与接口

1. TestResult结果类集合了任意测试累加结果,通过TestResult实例传递个每个测试的Run()方法。TestResult在执行TestCase是如果失败会异常抛出  

2. TestListener接口是个事件监听规约,可供TestRunner类使用。它通知listener的对象相关事件,方法包括测试开始startTest,测试结束endTest,错误,增加异常addError和增加失败addFailure

3. TestFailure失败类是个“失败”状况的收集类,解释每次测试执行过程中出现的异常情况。其toString()方法返回“失败”状况的简要描述.

四、Junit测试技术存在的缺陷

junit要依靠第三方工具提供,而且在使用Junit时产生的测试代码中存在很多由于大量测试数据产生的重复性代码。另外我们传统上认为测试用例一般是数据,我们编写的测试代码是为了运行我们的测试用例而写的“驱动模块”。

五、小结

在实际的测试中我们测试Java中某个类的功能时常常需要执行一些共同的操作,我们可以通过用Junit框架中的对象类来实现这个需求,简化了测试人员的操作,尽管Junit测试有时候很方便,但是也还存在着需要改进的地方。    

转载于:https://www.cnblogs.com/fanghua123/p/10572947.html

相关文章:

  • 企业应用开发(3)--用户故事
  • CAP的简单理解
  • 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践
  • Chrome 存在数据泄漏问题,谷歌更新说明却没提
  • Flutter (三) Dart 语言基础详解 (异步,生成器,隔离,元数据,注释)
  • 阿里云ECS的1M带宽理解
  • 虚拟机中网络的设置与vim的安装
  • MySQL出现Waiting for table metadata lock的原因以及解决方法
  • 据说是微软面试题,答案让人泪奔==
  • 天梯赛题解 L1-006 连续因子
  • 麦当劳重金收购一大数据创业公司,持续加码数字化转型
  • 前嗅ForeSpider脚本教程:链接脚本
  • Chrome 控制台console的用法(学了之后对于调试js可是大大有用的哦)
  • ajax----tomact服务器运行
  • 软件测试工程师的核心竞争力是什么?
  • Date型的使用
  • DOM的那些事
  • IP路由与转发
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java Agent 学习笔记
  • Laravel Mix运行时关于es2015报错解决方案
  • Rancher-k8s加速安装文档
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 给github项目添加CI badge
  • 和 || 运算
  • 排序(1):冒泡排序
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 小程序01:wepy框架整合iview webapp UI
  • 自制字幕遮挡器
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • !$boo在php中什么意思,php前戏
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言)fread与fwrite详解
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (三) diretfbrc详解
  • (新)网络工程师考点串讲与真题详解
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)ORM
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET 5种线程安全集合
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net Core和.Net Standard直观理解
  • .NET 中创建支持集合初始化器的类型
  • .NET构架之我见
  • .php文件都打不开,打不开php文件怎么办