日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java运用注解反射编写简单测试框架

發布時間:2023/12/20 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java运用注解反射编写简单测试框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試一個計算器類,把異常類型次數其他異常信息自動生成BUG文件

/*** 計算器類*/ 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("永無bug...");} }

注解

```javaimport 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)ElementType描述注解能夠作用的位置 METHOD:可以作用于方法上 public @interface Check { }

當主方法執行后,會自動自行被檢測的所有方法(加了Check注解的方法),判斷方法是否有異常,記錄到文件中

public class TestCheck {public static void main(String[] args) throws IOException {//1.創建計算器對象Calculator c = new Calculator();//2.獲取字節碼文件對象Class cls = c.getClass();//3.獲取所有方法Method[] methods = cls.getMethods();int number = 0;//出現異常的次數BufferedWriter bw = new BufferedWriter(new FileWriter("bug.txt"));for (Method method : methods) {//4.判斷方法上是否有Check注解if(method.isAnnotationPresent(Check.class)){//5.有,執行try {method.invoke(c);} catch (Exception e) {//6.捕獲異常//記錄到文件中number ++;bw.write(method.getName()+ " 方法出異常了");bw.newLine();bw.write("異常的名稱:" + e.getCause().getClass().getSimpleName());bw.newLine();bw.write("異常的原因:"+e.getCause().getMessage());bw.newLine();bw.write("--------------------------");bw.newLine();}}}bw.write("本次測試一共出現 "+number+" 次異常");bw.flush();bw.close();}}

效果展示
運行自動生成bug.txt文件

總結

以上是生活随笔為你收集整理的Java运用注解反射编写简单测试框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。