Java运用注解反射编写简单测试框架
生活随笔
收集整理的這篇文章主要介紹了
Java运用注解反射编写简单测试框架
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
測(cè)試一個(gè)計(jì)算器類(lèi),把異常類(lèi)型次數(shù)其他異常信息自動(dòng)生成BUG文件
/*** 計(jì)算器類(lèi)*/ public class Calculator {//加法@Checkpublic void add(){System.out.println("1+0="+(1+0));}//減法@Checkpublic void sub(){System.out.println("1-0="+(1-0));}//乘法@Checkpublic void mul(){System.out.println("1*0"+(1*0));}//除法@Checkpublic void div(){System.out.println("1/0="+(1/0));}public void show(){System.out.println("永無(wú)bug...");} }注解
```javaimport java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)描述注解被保留的階段 三個(gè)階段之一運(yùn)行階段 @Target(ElementType.METHOD)ElementType描述注解能夠作用的位置 METHOD:可以作用于方法上 public @interface Check { }當(dāng)主方法執(zhí)行后,會(huì)自動(dòng)自行被檢測(cè)的所有方法(加了Check注解的方法),判斷方法是否有異常,記錄到文件中
public class TestCheck {public static void main(String[] args) throws IOException {//1.創(chuàng)建計(jì)算器對(duì)象Calculator c = new Calculator();//2.獲取字節(jié)碼文件對(duì)象Class cls = c.getClass();//3.獲取所有方法Method[] methods = cls.getMethods();int number = 0;//出現(xiàn)異常的次數(shù)BufferedWriter bw = new BufferedWriter(new FileWriter("bug.txt"));for (Method method : methods) {//4.判斷方法上是否有Check注解if(method.isAnnotationPresent(Check.class)){//5.有,執(zhí)行try {method.invoke(c);} catch (Exception e) {//6.捕獲異常//記錄到文件中number ++;bw.write(method.getName()+ " 方法出異常了");bw.newLine();bw.write("異常的名稱(chēng):" + e.getCause().getClass().getSimpleName());bw.newLine();bw.write("異常的原因:"+e.getCause().getMessage());bw.newLine();bw.write("--------------------------");bw.newLine();}}}bw.write("本次測(cè)試一共出現(xiàn) "+number+" 次異常");bw.flush();bw.close();}}效果展示
運(yùn)行自動(dòng)生成bug.txt文件
總結(jié)
以上是生活随笔為你收集整理的Java运用注解反射编写简单测试框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Qt系列文章之 右键菜单QMenu(下
- 下一篇: Java注解案例-简单测试框架