这几天为了学Hibernate的集合类型映射回头复习了一下JCF(Java Collection Framework),于是不可避免的写了很多小程序,比如下面这个TestMap类用来复习Map:
package sample.map; import java.util.HashMap; import java.util.Map; /** * * @author CodingMyWorld */ public class TestMap { //Map最常规的put与get private void test1() { Map map = new HashMap(); map.put("1", "Monday"); map.put("2", "Tuesday"); map.put("3", "wednesday"); map.put("4", "Thursday"); System.out.println("size : " + map.size()); System.out.println("map[\"2\"] : " + map.get("2")); } //Map中的键值不能重复 private void test2() { Map map = new HashMap(); map.put("1", "Mon."); map.put("1", "Monday"); map.put("one", "Monday"); System.out.println("size : " + map.size()); System.out.println("map : " + map); } //遍历Map中的键值对 private void test3() { Map map = new HashMap(); map.put("1", "Monday"); map.put("2", "Tuesday"); map.put("3", "wednesday"); map.put("4", "Thursday"); for(Object key : map.keySet()) { System.out.println(key + " : " + map.get(key)); } } // main方法。。。 } |
上面的代码毫无亮点,相信大家平时也会经常写一些类似这样的小程序来温故知新。真正吸引我注意力的下面这段代码:
public static void main(String[] args) { TestMap test = new TestMap(); test.test1(); System.out.println("================================="); test.test2(); System.out.println("================================="); test.test3(); } |
由于我写了很多这样的类,不可避免的我需要在每个类中的main方法都重复如上的代码。这样的代码写多了就让人恶心,一扫coding的乐趣。于是我突发奇想,既然我的目的只是运行每个小程序中的test方法查看输出,为什么不写一个驱动类来搞定呢?当然,我可以用JUnit来实现,但是既然要求如此简单明确,自己写一个又何妨,全当练手啦,顺便还能复习一下Reflection API。
思路
2. 通过反射为每个测试用例类构造一个实例。
3. 通过反射筛选出测试用例中的测试方法。测试方法需满足:1.方法名为testXxx 2.方法无参
4. 调用每个测试方法,并做一些统计
5. 适当的Exception Handling
执行
把反射搞懂之后再写这个程序就很Easy了,我直接贴上我的代码,欢迎各位在下面的评论中指正。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。