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

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 一个简单的 Java Filter 接口publicinterfaceFilter{voidsetFilter(Stringfltr);booleanapplyFilter(Stringvalue);}我们的想法是用这个特性从大的列表中过滤掉想要的或者不想要的包名,所以,实战 Gro


清单 1. 一个简单的 Java Filter 接口
public interface Filter { 
 void setFilter(String fltr);  
 boolean applyFilter(String value); 
} 

我们的想法是用这个特性从大的列表中过滤掉想要的或者不想要的包名。所以,我建立了两个实现: RegexPackageFilter 和 SimplePackageFilter。

把 Groovy 和 JUnit 的强大功能与简单性结合在一起,就形成了如清单 2 所示的简洁的测试套件:


清单 2. 用 JUunit 制作的 Groovy RegexFilterTest
import junit.framework.TestCase 
import com.vanward.sedona.frmwrk.filter.impl.RegexPackageFilter 
class RegexFilterTest extends TestCase {  
 void testSimpleRegex() { 
  fltr = new RegexPackageFilter() 
  fltr.setFilter("java.*") 
  val = fltr.applyFilter("java.lang.String")  
  assertEquals("value should be true", true, val)  
 } 
} 

不管您是否熟悉 Groovy,清单 2 中的代码对您来说应当很面熟,因为它只不过是没有分号、访问修饰符或变量类型的 Java 代码而已!上面的 JUnit 测试中有一个测试用例 testSimpleRegex(),它试图断言 RegexPackageFilter 用正则表达式 "java.*" 正确地找到了与 “ java.lang.String”匹配的对象。

Groovy 扩展了 JUnit

扩展 JUnit 的 TestCase 类,加入附加特性,实际上是每个 JUnit 扩展通常采用的技术。例如,DbUnit 框架提供了一个方便的 DatabaseTestCase 类,能够比以往任何时候都更容易地管理数据库的状态,还有重要的 MockStrutsTestCase,它生成虚拟的 servlet 容器,用来执行 struts 代码。这两个强大的框架都极好地扩展了 JUnit,提供了 JUnit 核心代码中所没有的其他特性;而现在 Groovy 来了,它也是这么做的!

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:实战 Groovy Groovy

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