快速业务通道

使用Grester简化Java应用程序的JUnit测试 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13

使用Grester简化Java应用程序的JUnit测试

时间:2012-03-17 IBM Michael Nyika

Grester 是一种针对 Jester 的 Apache Maven 包装器,用于检查未采用测试驱动方式编写的代码

Jester 由 Ivan Moore 编写,它是测试由程序员和开发人员编写的单元测试的优秀工具。该工具基于这样一个假设:代码中的很多区域包含了条件语句、循环语句和 case 语句,并且在一些代码区域中,类的圈复杂度(cyclomatic complexity)由于存在很多执行路径而会突然增加。Jester 主要关注的就是类似这样的代码。但是要运行它,必须使用指向各个资源的格式良好的类路径。

Grester 是针对 Jester 的 Apache Maven 包装器,它减轻了从项目依赖关系构造 Java™ 类路径之类的麻烦,这样您可以使用 Jester 更轻松地测试执行点。Grester 还增强了使用 Maven 的一些优点,Maven 是其基础架构的核心。在对没有使用测试驱动方式编写的代码进行额外检查时,Jester 尤为有用。此类代码可以是旧式应用程序中的遗留代码,甚至还可以是最近编写的代码,这些代码的开发人员认为使用 Agile 的测试驱动方法指导构建高质量代码来说难度较大。

实际上,您可以使用 Grester 来突破使用非测试驱动方式编写代码的限制。根据我的经验,范围蔓延(scope creep)和可能错失或绕过实际业务函数的代码将会增加错误数和恶意代码 数量(快速处理 blob 反模式,即使在很小的代码段中,都不必作为单个难于管理的模块或模块集)。

本文不会探讨解释 Jester 的输出及精确说明 Jester 如何工作的技术细节。本文旨在探讨获取并围绕 Jester 使用 Maven 插件包装器。

获取 Grester

运行 Grester 所需的基础设施非常少:您只需要使用 Maven 就能构建和使用 Grester。Grester 是用 Groovy 编写的,Groovy 是一种动态语言,它的语法类似于 Java 并且拥有 Python 和 Ruby 等语言的优点。Grester 本质上只是用于快速运行 Jester 工具的另一个 Maven 插件,因此 Grester 的真正威力来自 Jester。在本文中,结合使用了 Jester V1.37 与 Grester V0.3 alpha 发行版。

Jester 打破常规:为什么呢?

如果所有项目 Java Archive (JAR) 依赖关系都位于一个位置,那么直接运行 Jester 不可能比在 Java 类路径条目中引用单个路径更简单。但是,当依赖关系散布到整个文件系统中时,每次 Jester 运行的配置问题会十分复杂而讨厌,尤其是在各个依赖关系随时间改变位置时。使用 Maven 将显著简化此过程。

Jester 运行在 Maven 项目构建配置以外的每个实例中。那么,Grester 的特别之处在哪里?答案在于 Maven 组织其依赖关系的方式。这种 “安排” 非常高效,Maven 不但尝试把 Java(或 Groovy)JAR 和 Web 归档 (WAR) 的查找方式标准化,而且还尝试把保存方式标准化。

Linux 和 UNIX 用户注意 Grester 的文件大小非常小,并且在解压缩后,您可以放心地删除目前的压缩归档。这里是在 Windows 计算机中使用 Cygwin 来说明解压缩它是多么简单 —— 甚至在模拟的 Linux 环境中也一样。但是,不建议用早于 Grester 0.3 的版本在 Linux 或 UNIX 系统上试验,因为虽然 Windows alpha 版本非常稳定,但是缺少一些操作系统功能。不过,在所有版本中,都使用 Jester V1.37。

如果您不熟悉 Maven,请使用系统库 的概念。有一个位于 $USER_HOME\.m2\repository 的默认本地系统库,还有一个在位于 $MAVEN_HOME/conf 的 pom.xml 或 settings.xml 文件中配置的远程系统库。

安装 Grester

获取 TAR 压缩资源(.tar 文件和 tar.gz 文件适用于 UNIX® 和 Linux®)或者 Microsoft® Windows® ZIP 文件后,请将其解压缩。有很多种方法可以完成此操作:在这里,我使用 Windows 中的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号