扩展JUnit4以促进测试驱动开发 - 编程入门网
ception{
Map<Class<?>, List<Filter>> filters = new HashMap<Class<?>, List<Filter>>();
String[] splits = intention.split(ExtensionConstant.REGEX_COMMA);
for(String split : splits){
String[] pair = split.split(ExtensionConstant.REGEX_EQUAL);
if(pair != null && pair.length == 2){
Filter filter = createFilter(pair[0],pair[1]);
String annotationType = ExtensionConstant.ANNOTATION_PREFIX + pair [0];
Class<?> annotation = Class.forName(annotationType);
List<Filter> filterList = null;
if(filters.containsKey(annotation)){
filterList = filters.get(annotation);
}else{
filterList = new ArrayList<Filter>();
}
filterList.add(filter);
filters.put(annotation, filterList);
}
}
return filters;
}
………………
}
核心类模块中的类是对 JUnit4 中的类的扩展,从下图中可以看到两者的继承关系: 图 4. 核心扩展类和 JUnit4 中类的继承关系 扩展JUnit4以促进测试驱动开发(5)时间:2011-10-02 ibm 左超Request 类是 JUnit4 中用来表示一次测试用例请求的抽象概念。它是一次测试用例执行的发起点。 RunerBuilder 会根据测试用例来创建相应的 Runner 实现类。BlockJUnit4ClassRunner 是 JUnit4 中用 来执行单独一个测试用例的 Runner 实现类。我们通过扩展它,来获得 JUnit 执行测试用例的能力,同 时在 ExtensionRunner 中调用过滤器对测试用例方法进行过滤,从而根据我们定义的业务规则来执行测 试用例。Result 类是 JUnit4 中用来封装测试用例执行结果的类,我们对它进行了扩展,来格式化测试 用例执行结果的输出。下面给出 ExtensionRunner 的部分实现。 清单 5. ExtensionRunner 部分实现
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |