WEB开发网
开发学院软件开发Java 实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行... 阅读

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 清单 10. Maven 项目的 build.properties 文件maven.test.search.classdir=true最后,我在 maven.xml 文件中定义了一个测试目标( goal),实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行单元测试(10),如


清单 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 测试、将测试整合到自动编译中的一个优秀平台。对于像我一样为代码质量发狂的人来说,这种组合极大地减少了我的 神经紧张,还让我可以得到我想做得最好的东西:编写“防弹”软件。快点行动吧。

因为这是一个新的系列,所以我非常希望您能一起来推动它前进。

上一页  5 6 7 8 9 10 

Tags:实战 Groovy Groovy

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接