• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用JUnit框架实现Java单元测试

发布: 2008-5-28 16:50 | 作者: 网络转载 | 来源: 网络转载 | 查看: 223次 | 进入软件测试论坛讨论

领测软件测试网

 随着软件项目的逐渐增大,软件测试在软件开发中的地位显得越来越重要。如果软件项目没有良好的测试流程,随着系统的增大,无论项目管理人员还是软件开发人员都会对项目的前景失去信心,甚至会对项目的目标产生分歧,因为长期以来没有对程序代码和系统设计进行有效的控制,很多问题都被暂时掩盖或逐渐演化成其他的问题。软件开发周期越长,就会使得问题进化的版本越多,最后造成的结果是“剪不断,理还乱”。
  单元测试是整个测试流程中最基础的部分,它们要求程序员尽可能早地发现问题,并给予控制,这是其一。另外,如果集成测试出现问题,它们可以帮助诊断。这样就为在软件开发流程中建立高效的事件反应机制打下了坚实基础。
  JUnit就是为Java程序开发者实现单元测试提供一种框架,使得Java单元测试更规范有效,并且更有利于测试的集成。
  JUnit的内部结构
  JUnit的软件结构
  JUnit 共有七个包,核心的包就是junit.framework 和junit.runner。Framework包负责整个测试对象的构架,Runner负责测试驱动。
  JUnit的类结构
  JUnit有四个重要的类:TestSuite、TestCase、TestResult、TestRunner。前三个类属于Framework包,后一个类在不同的环境下是不同的。这里使用的是文本测试环境,所以用的是 junit.textui.TestRunner。各个类的职责如下:
  1.TestResult,负责收集TestCase所执行的结果,它将结果分为两类,客户可预测的Failure和没有预测的Error。同时负责将测试结果转发到TestListener(该接口由TestRunner继承)处理;
  2.TestRunner,客户对象调用的起点,负责对整个测试流程的跟踪。能够显示返回的测试结果,并且报告测试的进度。
  3.TestSuite, 负责包装和运行所有的TestCase。
  4.TestCase, 客户测试类所要继承的类,负责测试时对客户类进行初始化,以及测试方法调用。
  另外还有两个重要的接口:Test和TestListener。
  1.Test, 包含两个方法:run() 和countTestCases(),它是对测试动作特征的提取。
  2.TestListener, 包含四个方法:addError()、addFailure()、startTest()和endTest(),它是对测试结果的处理以及测试驱动过程的动作特征的提取。
  下面给出的两个类图(篇幅有限,只显示主要部分)很好地阐明了类之间的关系,以及junit的设计目标(如图1)。测试案例的类采用Composite模式。这样,客户的测试对象就转变成一个“部分—整体”的层次结构。客户代码仅需要继承类TestCase,就可以轻松的与已有的其他对象组合使用,从而使得单元测试的集成更加方便。
   
  图1 测试结构图


  图2是测试跟踪类图。

图2左边TestSuite包含了测试对象集合,右边包含了测试结果集。具体如何处理结果,以及包含哪些测试对象,并没有立即得出结论,而是尽量地延迟到具体实现的时候。例如,实现接口TestListener的JUnit中就含有:junit.awtui.TestRunner、junit.swingui. TestRunner、junit.ui.TestRunner等,甚至客户用自己的类实现TestListener,从而达到多样化的目的。
   
  
  从以上两个类图,可以了解JUnit对单元测试的基本思路,这个框架的核心就是结果集和案例集。
 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: java JAVA Java junit Junit JUnit 单元 框架

31/3123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网