Java之------JUnit(二)

来源:互联网 发布:网页源代码加密js 编辑:程序博客网 时间:2024/06/03 15:55

自制JUnit

上一篇JUnit的博客里面讲了关于它的使用方法,这一片就来自制一个JUnit看看吧

关于MyEclipse里面的JUnit是已经嵌入到了系统中的,我们无法完全实现JUnit的功能,但基本的还是可以实现。


首先,需要写一个注解MyTest(Annotation关于注解详情请见本博客“Java之------注解(Annotation)”点击打开链接):

package cn.hncu.myJUnit;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface MyTest {}
再来写一个MyJUnit(这个就相当于系统运行加了@MyTest注解的方法的操作):

package cn.hncu.myJUnit;import java.lang.reflect.Method;import java.util.Scanner;public class MyJUnit {public static void main(String[] args) throws Exception {Scanner input=new Scanner(System.in);System.out.println("请输入要被测试的类名");String className=input.nextLine();Class c=Class.forName(className);Object obj=c.newInstance();Method methods[]=c.getDeclaredMethods();for (Method m:methods){boolean boo=m.isAnnotationPresent(MyTest.class);System.out.println(m.getName()+"是否存在注解:"+boo);if (boo){m.invoke(obj, null);}}}}
接下来就可以使用了,可以将@MyTest注解加到需要测试的方法上,只是不能像加了@Test那样运行,需要在MyJUnit中手动输入要测试的类的名字,进而搜索出该方法执行。

下面写一个类给其中的一个方法加上@MyTest注解:

package cn.hncu.myJUnit;public class A {public void aa(){System.out.println("aa......");}@MyTestpublic void bb(){System.out.println("bb......");}public void cc(){System.out.println("cc......");}}
然后到MyJUnit中输入A类的完整类名,即加上包名,本例为:cn.hncu.myJUnit.A

运行结果为:



本例的目的在于学习JUnit的内部本质实现,深入了解JUnit,为了学习技术这种是有必要掌握的


0 0
原创粉丝点击