生活随笔
收集整理的這篇文章主要介紹了
注解_案例_简单的测试框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
* 案例:簡單的測試框架
* 小結:
?? ?1. 以后大多數時候,我們會使用注解,而不是自定義注解
?? ?2. 注解給誰用?
?? ??? ?1. 編譯器
?? ??? ?2. 給解析程序用
?? ?3. 注解不是程序的一部分,可以理解為注解就是一個標簽
package cn.learn.annotation.demo;/*** 小明定義的計算器類*/
public class Calculator {//加法@Checkpublic void add(){String str = null;str.toString();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...");}}
package cn.learn.annotation.demo;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 Check {
}
package cn.learn.annotation.demo;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;/*** 簡單的測試框架** 當主方法執行后,會自動自行被檢測的所有方法(加了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();}}
?
總結
以上是生活随笔為你收集整理的注解_案例_简单的测试框架的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。