分类: Java
2009-06-05 14:37:36
1、 配置Groovy IDE
l 通过《在Eclipse3中安装Groovy IDE插件》中的讲述,安装Groovy IDE插件
l Window > Customize Perspective > Shortcuts > New
l 选中Goovy项,包括New Groovy Class和New Groovy Unit Test两项
2、 创建Groovy类
l File > New > Project >Java Project
l 输入工程名,如TestGroovy
l 点击Finish按钮完成工程创建
l File > New > New Groovy Class
l 输入Groovy类名,如HelloGroovy
l 点击Finish按钮,系统提示:Add runtime groovy support and auto build to project ?
l 点击Yes添加Groovy支持:在工程的Build Path中增加了Groovy和ASM类库(运行Groovy类必须的)
l Groovy类以groovy为扩展名,提供类似于Java中main方法的代码框架,例子中直接输出“Hello Groovy !”
class HelloGroovy {
static void main(args) {
println “Hello Groovy !”
}
}
l 可以看出Groovy类的代码要比Java简洁
l 注:由于Groovy IDE插件还在开发阶段,编辑功能还很弱(不太好用)
3、 运行Groovy程序
l Run > Run
l 左边列表中选择Groovy,点击下面的New按钮
l Groovy Main标签页中:
Ø Project:TestGroovy
Ø Main Class:(选择)HelloGroovy
l 点击Run按钮,就会在Console视图中看到运行结果
4、 Groovy单元测试
l File > New > New Groovy Unit Test
l 输入名字,如GroovyTest
l 点击Finish按钮,生成基本框架
import groovy.util.GroovyTestCase
Ø class GroovyTest extends GroovyTestCase {
void testSomething() {
assert 1 == 1
}
}
l Groovy的单元测试类都要扩展GroovyTestCase类,例子中只是加了一个简单的assert语句
l 除了可以使用Juint的断言语句,GroovyTestCase增加了一些附加的断言语句:
Ø assertArrayEquals(Object[] expected, Object[] value)
Ø assertLength(int length, char[] array)
Ø assertLength(int length, int[] array)
Ø assertLength(int length, Object[] array)
Ø assertContains(char expected, char[] array)
Ø assertContains(int expected, int[] array)
Ø assertToString(Object value, String expected)
Ø assertInspect(Object value, String expected)
Ø assertScript(final String script) // 断言脚本运行没有异常
Ø shouldFail(Closure code) // 断言闭包没有抛出异常
Ø shouldFail(Class clazz, Closure code) // 同上,只是针对类
l 另外,在Groovy脚本中,可以直接使用断言语句,如下面的例子:
x = [1, 2, 3]
assert x.size() == 3
5、 运行Groovy测试用例
l Run > Run
l 左边列表中选择JUint,点击下面的New按钮
l Test标签页中,选择 Run a single test:
Ø Project:TestGroovy
Ø Test Class:(选择)groovy.util.GroovyTestSuite(这是一个JUnit TestSuite,用来编译和运行Groovy测试用例)
l 在Arguments标签页的VM arguments部分添加:-Dtest=src/GroovyTest.groovy(提供test系统属性来指定要运行的Groovy测试用例)
l 点击Run按钮,就会在JUint视图中看到测试结果(需要自己打开JUint视图)