自己写一个JUnit3-day1
day1
接下来,我们自己写一个能实现类似效果的小程序。
新建com.wangc.day1.MyUnit3.java
public class MyUnit3 { public static void main(String[] args) throws Exception { Class c = Class.forName(args[0]);//args[0]获取运行参数,假定第一个运行参数即为需要执行的测试类。并加载该类 Object o = c.newInstance(); Method[] methods = c.getMethods();//获取所有方法,然后遍历得到符合要求的方法,通过invoke()执行 for(Method m :methods){ if(isTestMethod(m)){ m.invoke(o); } } } private static boolean isTestMethod(Method m){ String methodName = m.getName(); int modifier = m.getModifiers(); Class returnType = m.getReturnType(); if( !methodName.startsWith("test") ){ return false; //如果不是test开头,则返回false }else if( 1!=modifier ){ return false;//如果不是public的,返回false }else if( !returnType.equals(Void.TYPE)){ return false;//如果方法不是void,返回false }else{ return true; } // 上面的一串if else可以简写成 // return methodName.startsWith("test") && 1==modifier && returnType.equals(Void.TYPE); } }
新建com.wangc.day1.JUnit3Demo.java
这里使用我们自己的MyUnit3来执行测试,所以没有要求必须继承某个类,仅仅对方法名有要求
public class JUnit3Demo { public void testAdd1(){ System.out.println("this is testAdd1 with MyUnit3"); } public void testAdd2(){ System.out.println("this is testAdd2 with MyUnit3"); } }
然后,打开命令提示符(或Shell终端),进入src目录,然后执行编译javac
D:\workspace_HelloWorld\HelloWorld_JUnit3>javac -encoding UTF-8 -d ./out src/com/wangc/day1/*.java
然后运行java
D:\workspace_HelloWorld\HelloWorld_JUnit3>java -classpath "./out" com.wangc.day1.MyUnit3 com.wangc.day1.JUnit3Demo
以上。

浙公网安备 33010602011771号