单元测试代码自动化生成解决方案
写在前面的话:
鄙人星云,今年六月份,刚到北京入职了一家国企,由于刚进项目对现有的项目业务还不是很熟悉,但是领导已经下了命令,要我给现有的项目写单元测试代码,项目比较大,业务还不熟悉,如果全部手写测试代码,必然是个累死人不偿命的事情。
那么有没有更好的解决方案呢?答案自然是肯定的。
解决方案:
通过查询资料得知,在码农界有这样一个Eclipse插件——CodePro Analytix,通过这个插件可以自动批量生成单元测试代码。
CodePro Analytix是一个基于Eclipse的快速开发环境,能够自动的完成重复的任务使Java开发者快速的开发出高质量的软件。能够保证代码质量,包括代码评审、metric、设计模式、测试,等等
使用指南:
- CodePro Analytix 插件下载
- 下载后解压到一个路径下,路径中最好不要有中文。
解压后像这样:
-
打开你的Eclipse IDE
我用的IDE是STS——Spring 官方推出的Eclipse发行版。
- Help------> Install new Software
5.Work With: --------> add... ------->Local...
浏览找到刚才解压的路径
6.选中这三个选项,然后一步一步安装即可
7.安装完成后重启下你的Eclipse 即可。
8.修改配置
Windows------> Perference ——————Code Pro ------->JUnit ----->Generated Code
默认是这样的:
- 但是一般我们需要修改下才符合我们常规的使用
10.最后选中项目中的源码文件或者源码文件夹或项目名,右键------>Code Pro Tools----->Generate Test Case即可
这样,批量的单元测试代码就生成了。
接下来讲解一些注意事项:
- 关于JUnit报initializationError的解决方法
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core --> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>1.3</version> <scope>test</scope> </dependency>
2.关于一些莫名奇妙无法处理的异常处理
比如莫名奇妙的空指针异常,可以在测试注解中添加这个值
@Test(expected = java.lang.NullPointerException.class)
或者如果有其他的异常类似这个:
@Test(expected = org.apache.axiom.om.OMException.class) public void testSerialize_1() throws Exception { PostEvent fixture = new PostEvent(); fixture.setEventName(""); fixture.setEventData(""); fixture.localEventNameTracker = true; fixture.localEventDataTracker = true; QName parentQName = new QName(""); OMFactory factory = new OMLinkedListImplFactory(); MTOMAwareXMLStreamWriter xmlWriter = new MTOMAwareOMBuilder(); fixture.serialize(parentQName, factory, xmlWriter); // add additional test code here // An unexpected exception was thrown in user code while executing this test: // org.apache.axiom.om.OMException: localname can not be null or empty // at org.apache.axiom.om.impl.llom.OMElementImpl.<init>(OMElementImpl.java:135) // at org.apache.axiom.om.impl.llom.OMElementImpl.<init>(OMElementImpl.java:118) // at org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory.createOMElement(OMLinkedListImplFactory.java:75) // at org.apache.axis2.databinding.utils.writer.MTOMAwareOMBuilder.writeStartElement(MTOMAwareOMBuilder.java:101) // at org.apache.axis2.databinding.utils.writer.MTOMAwareOMBuilder.writeStartElement(MTOMAwareOMBuilder.java:92) // at com.travelsky.dcsi.PostEvent.serialize(PostEvent.java:178) // at com.travelsky.dcsi.PostEvent.serialize(PostEvent.java:151) }
看到这样的信息就添加注解:
@Test(expected = org.apache.axis2.databinding.ADBException.class)
- 关于断言测试常用的几种用法:
//如果result不为空返回true测试通过 assertNotNull(result); //第一个参数是期待结果,第二个是实际的引用对象 assertEquals(true, result.hasNext()); //支持多种数据类型 assertEquals(2, result.next()); //期待结果是null 接受一个引用对象参数 assertNull(result)
本篇完~
交流即分享,分享才能进步! 不对之处,还请各位前辈多多指教。 by 星云 *
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CentOS 7 安装 JAVA环境(JDK 1.8)
下载 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 记得先勾选接受协议,这里我选择的是:Linux 64位版本,你们可以根据自己需求选择。 值得注意的是下载这里有个鉴权,如果你是直接右键复制下载链接在服务器执行操作,那么可能就几KB而已。这里直接打开浏览器开发者工具取到带有授权的下载链接。 wget下载 wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1536829373_c54140ac09c837c2b3b95dbcb032e4bb 下载以后通过命令检查安装包大小是否符合 ls -lht 安装 创建安装目录 mkdir /usr/local/java/ 解压至安装目 tar -zxvf jdk-8u171-linux-x64.tar.gz -C /u...
- 下一篇
我的JAVA面试经验(3年左右工作经验)
前言- 致那些迷茫的JAVA面试者(特别是南京的1-4年经验),致那些奋发的年轻人,致自己。写这篇博文主要也是对我的成长道路的记录,面试受挫后的反思,及对自己的勉励。 本人介绍:3年多经验的程序员,坐标南京。 背景:因水平有限,及对部分面试问题记忆及理解有限,可能有些问题并不能表达准确。掌握技术有限,学习主动性一般(虽遇到问题善于思考钻研,但如果没有遇到问题比较放纵自己...被自由,轻松,安逸迷失心智),以及原公司项目背景因素,基本不需要太多新的技术框架支持,更没有涉及消息中间件,高并发分布式等等相关较主流技术,技术体系相对较老。综上导致我对很多新技术并不是太了解。 面试经验背景:基本公司都是按简历掌握技术来问(当然也有超纲不按套路出牌的),如果你简历掌握技术什么都不写,也有可能接到面试邀请,那么面试官问题可能就比较广了,对面试者不利。掌握技术我写了java基础:多线程,io/nio,jvm,集合底层,tcp/ip协议,socket,websocket。spring,springmvc,xml,设计模式,eclipse plugin开发,数据库,前端(基本没有什么人问,面的后端开发,也...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果