实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行单元测试
2009-11-19 00:00:00 来源:WEB开发网
清单 10. Maven 项目的 build.properties 文件 maven.test.search.classdir = true
最后,我在 maven.xml 文件中定义了一个测试目标( goal),如清单 11 所示。这样做可以确保 在单元测试运行之前,使用新的 run-groovyc 目标编译 Groovy 脚本。
清单 11. maven.xml 的新目标 <goal name="test">
<attainGoal name="run-groovyc"/>
<attainGoal name="test:test"/>
</goal>
最后一个,但并非最不重要
有了新定义的两个目标(一个用来编译脚本,另外一个用来运行 Java 和 Groovy 组合而成的单元测试),剩下的事就只有运行它们,检查是不是每件事都顺利运行!
在清单 12 中,您可以看到,当我运行 Maven,给 test 传递目标之后,会发生了什么,它首先包含 run-groovyc 目标(而该目标恰好还包含 java:compile 和 test:compile 这两个目标),然后包含 Maven 中自带的标准的 test:test 目标。请注意观察目标 test:test 是如何处理新生成的 Groovy 脚本(在该例中,是新 编译的 Groovy 脚本) 以及普通的 Java JUnit 测试。
清单 12. 运行新的测试目标$ ./maven test
test:
java:compile:
[echo] Compiling to /home/aglover/dev/target/classes
[javac] Compiling 15 source files to /home/aglover/dev/target/classes
test:compile:
[javac] Compiling 4 source files to /home/aglover/dev/target/test-classes
run-groovyc:
[groovyc] Compiling 2 source files to /home/aglover/dev/target/test-classes
[groovyc] /home/aglover/dev/test/groovy/test/RegexFilterTest.groovy
[groovyc] /home/aglover/dev/test/groovy/test/SimpleFilterTest.groovy
test:test:
[junit] Running test.RegexFilterTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.656 sec
[junit] Running test.SimpleFilterTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.609 sec
[junit] Running test.SimplePackageFilterTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.578 sec
BUILD SUCCESSFUL
Total time: 42 seconds
Finished at: Tue Sep 21 17:37:08 EDT 2004
结束语
在 实战 Groovy 系列的第一期中,您学习了 Groovy 这个令人兴奋的脚本语言最实用的应用当中的一个。对于越来越多开发人员而言,单元测试是开发过程的重要组成部分;而使用 Groovy 和 JUnit 对 Java 代码进行测试就变成了轻而易举的事情。
Groovy 简单的语法、内部的灵活性,使其成为迅速编写有效的 JUnit 测试、将测试整合到自动编译中的一个优秀平台。对于像我一样为代码质量发狂的人来说,这种组合极大地减少了我的 神经紧张,还让我可以得到我想做得最好的东西:编写“防弹”软件。快点行动吧。
因为这是一个新的系列,所以我非常希望您能一起来推动它前进。
- ››Groovy轻松入门
- ››实战:企业使用交换机VLAN路由配置
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››实战经验:巧用微博推广淘宝网店
- ››实战iPhone GPS定位系统
- ››实战Linux环境配置DBD:Oracle模块
- ››实战DeviceIoControl系列之一:通过API访问设备驱...
- ››实战DeviceIoControl系列之二:获取软盘/硬盘/光盘...
- ››实战DeviceIoControl系列之三:制作磁盘镜像文件
更多精彩
赞助商链接