版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JA V A 自动化单元测试工具 Junit Factory使用介绍(开发人员不再需要编写 Junit 测试用例最近在 PassPort 项目中,很多开发人员都采用了 Junit 作为单元测试工具,保证代码质量,所 以我最近研究了 agitar 公司的一种免费的 junit 自动生成的工具 -junit factory, agitar 公司有一套 更优秀的商业软件 -自动化单元测试工具 agitarone 。Junit 是 JA V A 开发中应用最多的单元测试框架, 部门内部也逐渐普及到各个项目开发中, 虽 然 Junit 测试框架易学易用, 但是还是在保证代码质量的同时增加了开发人员的代码
2、工作量, 需要拿出部分时间编写 Junit 测试代码。 Junit Factory就能更好的提高单元测试效率!原理:Junit Factory和 agitarone 的一项关键技术就是 software agitation,它可以为你自动创建各种测试 用例(实际测试必须要测试每一行、每一条分支、甚至每一种输出 ,而且自动创建的过程 是通过对代码的 agitation , (一种基于 java 二进制代码的分析, 可以自动得出需要测试的东东 后跟开发者交互来完成的。 agitation 的这种技术是基于服务器并且是分布式的,可以远程使 用,并可以利用多个服务器来完成。安装:Junit Facto
3、ry 是可以作为 eclipse 插件使用的,也可以和 ant 一起使用。部门内主要开发工具是 eclipse ,所以介绍如何在 eclipse 下用 Junit Factory生成 Junit 单元测试用例!Download :1. Eclipse, 选 Help ,选 Software Updates ,点 Find and Install ;2. 选择“ Search For New Features to Install” 然后“ Next ” ;3. 选 New Remote Site ;4. 输入一个 JUnit Factory网站的注册用户名 ;5. 输入 url : ;6. 安
4、装所有 plug-ins ;7. 重新启动 eclipse ;使用:安装完成后会在 eclipse 的工具条中出现 Generate Tests和 Generate Dashboard两个按钮,使用 Generate Tests生成 Junit 单元测试用例, 使用 Generate Dashboard查看包或者项目的单元测 试结果和带代码分析报告(利用 Crap4J 进行代码分析,得到 Fail 数量、 Pass 数量、覆盖率、 代码规范错误、 Risk Classes等等 。操作很简单,不详述!如图 1源码和生成的 Junit 测试代码举例源码源码:/*Instructions:1. En
5、ter (or paste some code2. Hit "Generate a Test"3. Your test will appear in the queue on the right of the page(or you can just 'Generate a Test' for this class*/package demo;public class LeapYear public static boolean isLeapYear(int year if(year < 1throw new IllegalArgumentExcept
6、ion(;if(year % 400 = 0return true;if(year % 100 = 0return false;if(year % 4 = 0return true;return false;生成的 Junit 测试代码:/* Generated by Agitar build: JUnitFactory V ersion 2.2.0.000710 (Build date: Jan 15, 2008 2.2.0.000710* JDK Version: 1.6.0_01* Generated on Mar 14, 2008 2:33:28 AM* Time to generat
7、e: 00:10.863 seconds*/package demo;import com.agitar.lib.junit.AgitarTestCase;public class LeapYearAgitarTest extends AgitarTestCase public Class getTargetClass( return LeapYear.class;public void testConstructor( throws Throwable new LeapYear(;assertTrue("Test call resulted in expected outcome&
8、quot;, true;public void testIsLeapYear( throws Throwable boolean result = LeapYear.isLeapYear(100;assertFalse("result", result;public void testIsLeapYear1( throws Throwable boolean result = LeapYear.isLeapYear(1;assertFalse("result", result;public void testIsLeapYear2( throws Thr
9、owable boolean result = LeapYear.isLeapYear(4;assertTrue("result", result;public void testIsLeapYear3( throws Throwable boolean result = LeapYear.isLeapYear(2;assertFalse("result", result;public void testIsLeapYear4( throws Throwable boolean result = LeapYear.isLeapYear(10000;ass
10、ertTrue("result", result;public void testIsLeapYearThrowsIllegalArgumentException( throws Throwable try LeapY ear.isLeapY ear(0;fail("Expected IllegalArgumentException to be thrown" catch (IllegalArgumentException ex assertNull("ex.getMessage(", ex.getMessage(;assertThr
11、ownBy(LeapYear.class, ex;Demo 地址:用户可以到这个 Demo 地址中输入任何代码来查看生成的 Junit TestCase 。Generate Dashboard 可以输出 Junit TestCase 的运行结果和代码分析报告(可以点击 eclipse 中 JUnit Factory视图中的 View Dashboard来打开浏览器显示代码分析报告 ,如图 2另外, 查看 Dashboard 时, 在浏览器中把 index.html 换成 dashboard.xm 能看到很多详细数据! (这 个需要查看者熟悉 XSLT 最好如图 3注意:我有一个想法,因为 Junit Factory 是可以和 ant 一起协作的,我觉得可以利用每日构建系统 Build System ,把 Junit 与 Build System 结合,独立成为一个服务器。下班时开发人员将当天 开发代码提交到 SVN 的 test 分支下, 由 Build System在夜间 download SVN服务器上的代码, 并 且利用 Junit Factory生成 Junit TestCase, 并且执行测试, 这样第二天早晨开发人员就可以看到 前一天代码的测试结果和分析报告,知道测试用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川民族学院考核招聘博士辅导员16人备考题库附答案详解(预热题)
- 水生态生物监测方案
- 市政管道防腐施工方案
- 施工劳务管理方案
- 2026年答谢中书书说课稿英语
- 2026内蒙古呼伦贝尔市海拉尔区事业单位人才引进考试模拟试题及答案解析
- Lesson 37说课稿-2025-2026学年小学英语5A新概念英语(青少版)
- 电子商务的基本框架与组成说课稿2025学年中职专业课-电子商务基础-纳税事务-财经商贸大类
- 2026湖北交通投资集团有限公司二季度社会招聘考试备考试题及答案解析
- 2026年停运损失赔偿条件与计算
- 《电力重大事故隐患判定标准及治理监督管理规定》深度解读
- 基坑降水的形式施工技术交底
- 2026年上海市金山区初三二模语文试卷
- 2026年及未来5年市场数据中国笔记本电脑声卡行业市场发展现状及投资战略咨询报告
- 2026中央安全生产考核巡查明查暗访应知应会手册及检查重点解析
- 第二单元《第2课 律动青春》教学设计- 人教版(2024)初中美术七年级下册
- 四川省眉山市名校2026届中考数学模试卷含解析
- 2026中国雅江集团招聘笔试备考试题及答案解析
- 电磁感应中的单棒、双棒和线框模型系统性答题模板与思维建模-2026年高考物理二轮复习解析版
- 创新中心建设规划方案
- 2026中医医师定期考核题库(附答案)临床真题(附答案)
评论
0/150
提交评论