单元测试三叉戟—JUNIT,DBUNIT,UNITILS

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 无法支持多库数据操作等等,但是我始终相信,技术无止境,只要我们保持足够的信心和激情,我们的可持续集成的单元测试体系不仅会为公司做出更大贡献,更可以成为业界一颗璀璨的明星。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值