[ 光影人像 东海陈光剑 的博客 ]
2015-01-27 13:40
267 查看
在Java单元测试领域,JUNIT一直各位开发人员和测试人员的最佳选择,它不仅提供了很多标准的API,同时很多IDE也对它提供了运行环境支持。特别是JUNIT4以后,引入了Java annotation的方式,进一步规范了测试脚本的结构,使测试脚本在原有的框架下更加灵活。
DBUNIT是一款基于JAVA的数据库维护工具,让在单元测试中使数据库中的数据维护透明化成为可能。
UNITILS是一款单元测试的维护工具,它可以把单元测试中用到到的资源采用JAVA ANNOTATION的方式统一管理起来,最大限度的减少测试脚本中硬编码的数量,降低编写测试脚本的难度。
我们在经过一段时间的实践以后,把这三个工具有机的结合起来,以JUNIT为整个测试的基础框架,采用DBUNIT为自动管理数据库的工具,以EXCEL为数据载体通过POI加载数据,最后通过UNITILS的ANNOTATION机制把整个数据以及EXCEL的IO过程透明化,同时也可以把SPRING容器中已经初始化好的BEAN透明地取出,仅仅把各种annotation的接口暴露给脚本开发者,使脚本开发者采用一个annotation符号就可以完成加载删除数据、初始化spring bean等硬编码中几行甚者是几行代码的工作。
整个单元测试的运行机理如下图所示:
由于官方版本的Unitils是不支持访问呢EXCEL的,因此需要编写插件调用DBUNIT中API使其支持EXCLE格式数据,另外如果远程数据库中需要用到的表无主键,DBUNIT会抛出无法找到主键的一场,这无法适应现实数据库的需要,因此需要修改DBUNIT的源码,使其支持在本地文件设置虚拟主键,这样就使整个数据准备策略觉有很大的灵活性,DBUNIT访问数据库方式如下图所示:
这就是整个单元测试框架,在加上现有的持续集成技术,就形成了一个相对完整的一个可持续集成的单元测试体系。
当然其中还有很多是我们需要改进的地方,比如:数据验证技术过于依赖与硬编码;UNITILS无法支持多库数据操作等等,但是我始终相信,技术无止境,只要我们保持足够的信心和激情,我们的可持续集成的单元测试体系不仅会为公司做出更大贡献,更可以成为业界一颗璀璨的明星。
我们从来只做一件事,分享.
让美在这个世界流转
让倍感无趣的 受伤的 彷徨的 孤独的 或是心情忧郁的 人生黯淡的人们
能有一次机会
去再一次发现这个世界的美
并把美传递给他人
---光影人像(Follow WeChat public number with interest)
DBUNIT是一款基于JAVA的数据库维护工具,让在单元测试中使数据库中的数据维护透明化成为可能。
UNITILS是一款单元测试的维护工具,它可以把单元测试中用到到的资源采用JAVA ANNOTATION的方式统一管理起来,最大限度的减少测试脚本中硬编码的数量,降低编写测试脚本的难度。
我们在经过一段时间的实践以后,把这三个工具有机的结合起来,以JUNIT为整个测试的基础框架,采用DBUNIT为自动管理数据库的工具,以EXCEL为数据载体通过POI加载数据,最后通过UNITILS的ANNOTATION机制把整个数据以及EXCEL的IO过程透明化,同时也可以把SPRING容器中已经初始化好的BEAN透明地取出,仅仅把各种annotation的接口暴露给脚本开发者,使脚本开发者采用一个annotation符号就可以完成加载删除数据、初始化spring bean等硬编码中几行甚者是几行代码的工作。
整个单元测试的运行机理如下图所示:
由于官方版本的Unitils是不支持访问呢EXCEL的,因此需要编写插件调用DBUNIT中API使其支持EXCLE格式数据,另外如果远程数据库中需要用到的表无主键,DBUNIT会抛出无法找到主键的一场,这无法适应现实数据库的需要,因此需要修改DBUNIT的源码,使其支持在本地文件设置虚拟主键,这样就使整个数据准备策略觉有很大的灵活性,DBUNIT访问数据库方式如下图所示:
这就是整个单元测试框架,在加上现有的持续集成技术,就形成了一个相对完整的一个可持续集成的单元测试体系。
当然其中还有很多是我们需要改进的地方,比如:数据验证技术过于依赖与硬编码;UNITILS无法支持多库数据操作等等,但是我始终相信,技术无止境,只要我们保持足够的信心和激情,我们的可持续集成的单元测试体系不仅会为公司做出更大贡献,更可以成为业界一颗璀璨的明星。
我们从来只做一件事,分享.
让美在这个世界流转
让倍感无趣的 受伤的 彷徨的 孤独的 或是心情忧郁的 人生黯淡的人们
能有一次机会
去再一次发现这个世界的美
并把美传递给他人
---光影人像(Follow WeChat public number with interest)
相关文章推荐
- 团队介绍 [ 光影人像 东海陈光剑 的博客 ]
- LoadRunner录制脚本时提示默认浏览器不支持解决方法 [ 光影人像 东海陈光剑 的博客 ]
- 用户体验测试之专家评估 [ 光影人像 东海陈光剑 的博客 ]
- 测试部的SAO文化 [ 光影人像 东海陈光剑 的博客 ]
- 无障碍assertEquals(Object obj1,Object obj2),想怎么比较就怎么比较!! [ 光影人像 东海陈光剑 的博客 ]
- 干一行爱一行&爱一行干一行 [ 光影人像 东海陈光剑 的博客 ]
- 技术支持可改进的地方 [ 光影人像 东海陈光剑 的博客 ]
- 工具介绍-Paros使用简介 [ 光影人像 东海陈光剑 的博客 ]
- 从设计模式Observer的实现看OOD的设计——浅谈“多态”的设计原则 [ 光影人像 东海陈光剑 的博客 ]
- 在实践中使用Jstat监控gc情况 [ 光影人像 东海陈光剑 的博客 ]
- 使用QC远程启动QTP [ 光影人像 东海陈光剑 的博客 ]
- [ 光影人像 东海陈光剑 的博客 ]
- 你是一个合格的质量工程师吗? [ 光影人像 东海陈光剑 的博客 ]
- 三人行必有我师焉 [ 光影人像 东海陈光剑 的博客 ]
- 使用LoadRunner8.1的java Vuser协议调用jar文件(三) [ 光影人像 东海陈光剑 的博客 ]
- 淘宝SQA工作随写 [ 光影人像 东海陈光剑 的博客 ]
- 有感支付宝招聘制度之神速 [ 光影人像 东海陈光剑 的博客 ]
- 吃火锅和测试的联想 [ 光影人像 东海陈光剑 的博客 ]
- 一步 [ 光影人像 东海陈光剑 的博客 ]
- 淘宝测试团队对我的影响 [ 光影人像 东海陈光剑 的博客 ]