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
- Java之------JUnit(二)
- java之Junit使用
- Java之------JUnit(一)
- Java单元测试之junit
- Android测试之旅之JUnit(二)
- Java单元测试Junit(二)使用DBUnit扩展JUnit
- java平台名人录之junit
- Java 单元测试利器之 Junit
- Java单元测试之JUnit篇
- 单元测试学习之二-JAVA的单元测试软件JUnit及覆盖度分析软件DJUnit
- 测试实践:Eclipse 之 JUnit(二)
- 测试实践:Eclipse 之 JUnit(二)
- Junit - Android测试之旅(二)
- Junit学习之路二--搭建环境
- JUnit(二)高级之运行器_MD
- junit(二)
- 面试之JAVA基础Junit了解
- java之 ------ JUnit、注解、类加载器
- 「UI 测试自动化selenium」汇总
- SQL之创建新的数据库
- HDU 2102 A计划 (搜索 队列)
- JavaSE入门学习36:Java集合框架之Set接口及其实现类HashSet和TreeSet
- 【深入理解JVM】:解析与分派
- Java之------JUnit(二)
- PaperReading:Object Co-Segmentation Based on Shortest Path Algorithm and Saliency Model
- CentOS6.5服务器端口捆绑
- POJ3177 Redundant Paths
- 数据库(SQLite)
- Hadoop之多行读取数据
- RxJava使用(二)filter 操作符
- NYOJ 三点顺序--68
- HDU1050 贪心