用 Groovy 更迅速地对 Java 代码进行单元测试

发表于:2010-07-06来源:作者:点击数: 标签:代码javaJAVAJavaGroovy
用 Groovy 更迅速地对 Java 代码进行 单元测试 软件测试 不久以前,developerWorks 的作者 Andrew Glover 撰写了一篇介绍 的文章,该文章是 alt.lang.jre 系列的一部分,而 Groovy 是一个新提议的用于 平台的标准语言。读者对这篇文章的反应非常热烈,所以我

  用 Groovy 更迅速地对 Java 代码进行单元测试   软件测试

  不久以前,developerWorks 的作者 Andrew Glover 撰写了一篇介绍 的文章,该文章是 alt.lang.jre 系列的一部分,而 Groovy 是一个新提议的用于 平台的标准语言。读者对这篇文章的反应非常热烈,所以我们决定开办这个专栏,提供使用这项热门新的实用指导。本文是第一期,将介绍使用 Groovy 和 JUnit 对 Java 进行的一个简单策略。

  开始之前,我首先要招认:我是一个单元测试狂。实际上,我总是无法编写足够的单元测试。如果我相当长一段时间都在进行,而 没有编写相应的单元测试,我就会觉得紧张。单元测试给我信心,让我相信我的代码能够工作,而且我只要看一下,可以修改它,就不会害怕它会崩溃。

  而且,作为一个单元测试狂,我喜欢编写多余的测试用例。但是,我的兴奋不是来自 编写测试用例,而是 看着它们生效。所以,如果我能用更快的方式编写测试,我就能更迅速地看到它们的结果。这让我感觉更好。更快一些!

  后来,我找到了 Groovy,它满足了我的单元测试狂,而且至今为止,对我仍然有效。这种新语言给单元测试带来的灵活性,非常令人兴奋,值得认真。本文是介绍 Groovy 方面的新系列的第一部分,在文中,我将向您介绍使用 Groovy 进行单元测试的快乐。我从概述开始,概述 Groovy 对 Java 平台上的开发所做的独特贡献,然后转而讨论使用 Groovy 和 JUnit 进行单元测试的细节,其中重点放在 Groovy 对 JUnit 的 TestCase 类的扩展上。最后,我用一个实用的示例进行总结,用第一手材料向您展示如何把 groovy 的这些特性与 Eclipse 和 Maven 集成在一起。

  不要再坚持 Java 纯粹主义了!

  在我开始介绍用 Groovy 进行单元测试的实际之前,我认为先谈谈一个更具一般性的问题 —— 它在您的开发箱中的位置,这非常重要。事实是,Groovy 不仅是运行在 Java 运行时环境(JRE)中的语言,它还被提议作为用于 Java 平台的标准语言。正如您们之中的人已经从 alt.lang.jre 系列(请参阅 参考资料)中学习到的,在为 Java 平台进行脚本编程的时候,有无数的选择,其中大多数是面向快速开发的高度灵活的环境。

  虽然有这么丰富的选择,但还是有许多开发人选择坚持自己喜欢的、最熟悉的范式:Java 语言。虽然大多数情况下,Java 编程都是很好的选择,但是它有一个非常重要的缺点,蒙住了只看见 Java 的好处的这些人的眼睛。正如一个智者曾经指出的: 如果您仅有的一个工具是一把锤子,那么您看每个问题时都会觉得它像是钉子。我认为这句谚语道出了适用于开发的许多事实。

  虽然我希望用这个系列说服您 Java 不是也不应当是开发应用程序的惟一选择,但该脚本确实既有适用的地方也有不适用的地方。专家和新手的区别在于:知道什么时候 运用该脚本,什么时候 避免使用它。

  关于本系列

  把工具整合到开发实践中的关键是了解什么时候使用它,以及什么时候把它留在工具箱中。脚本语言能够成为工具包中极为强大的附件,但是只有正确地应用在适当的场合时才是这样。为了实现 实战 Groovy 系列文章这个目标,我专门研究了 Groovy 的一些实战,教给您什么时候怎样才能成功地应用它们。

  例如,对于高、事务密集型、级应用程序,Groovy 脚本通常不太适合;在这些情况下,您最好的选择 可能是普通的 J2EE 。但另一方面,一些脚本 —— 特别是用 Groovy 编写的脚本 —— 会非常有用,因为它能迅速地为小型的、非常特殊的、不是性能密集型的应用程序(例如配置系统/生成系统)快速制作原型。对于报表应用程序来说,Groovy 脚本也是近乎完美的选择,而最重要的是,对单元测试更是如此。

  为什么用 Groovy 进行单元测试?

  是什么让 Groovy 比起其他脚本平台显得更具有吸引力呢?是它与Java 平台无缝的集成。还是因为它是基于 Java 的语言(不像其他语言,是对 JRE 的替代,因此可能基于旧版的处理器),对于 Java 开发人员来说,Groovy 意味着一条短得让人难以置信的学习曲线。而且一旦将这条学习曲线拉直,Groovy 就能提供一个无与伦比的快速开发平台。

  从这个角度来说,Groovy 成功的秘密,在于它的语法 就是 Java 语法,但是规则更少。例如,Groovy 不要求使用分号,变量类型和访问修饰符也是可选的。而且,Groovy 利用了标准的 Java 库,这些都是您已经很熟悉的,包括 Collections 和 File/IO。而且,您还可以利用任何 Groovy 提供的 Java 库,包括 JUnit。

  事实上,令人放松的类 Java 语法、对标准 Java 库的重用以及快捷的生成-运行周期,这些都使 Groovy 成为快速开发单元测试的理想替代品。但是会说的不如会做的,还是让我们在代码中看看它的实际效果!

原文转自:http://www.ltesting.net