注解--案例--简单的测试框架

黑马程序员

注解–案例–简单的测试框架

注解--案例--简单的测试框架_第1张图片
注解--案例--简单的测试框架_第2张图片

  • 加注解
    注解--案例--简单的测试框架_第3张图片
  • 编写测试类
    注解--案例--简单的测试框架_第4张图片
    注解--案例--简单的测试框架_第5张图片
    注解--案例--简单的测试框架_第6张图片
    注解--案例--简单的测试框架_第7张图片
    注解--案例--简单的测试框架_第8张图片
package A_Part02.annotation03;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Check {
}

package A_Part02.annotation03;

public class Calculator {
    @Check
    public void add(){
        System.out.println("1+0="+(1+0));
    }
    @Check
    public void sub(){
        System.out.println("1-0="+(1-0));
    }
    @Check
    public void mul(){
        System.out.println("1*0="+(1*0));
    }
    @Check
    public void div(){
        System.out.println("1/0="+(1/0));
    }
}

package A_Part02.annotation03;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main_Test {

    public static void main(String[] args) throws IOException {
        Calculator calculator = new Calculator();

        Class aClass = calculator.getClass();
        Method[] methods = aClass.getMethods();

        int num = 0;
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("bug.txt", true));

        for (Method method : methods) {
            if (method.isAnnotationPresent(Check.class)) {

                try {
                    method.invoke(calculator);
                } catch (Exception e) {
                    num++;
                    bufferedWriter.write(method.getName()+"方法出现异常");
                    bufferedWriter.newLine();

                    bufferedWriter.write("异常名称"+e.getCause().getClass().getSimpleName());
                    bufferedWriter.newLine();

                    bufferedWriter.write("异常原因"+e.getCause().getMessage());
                    bufferedWriter.newLine();
                    bufferedWriter.write("-------------------------------------");
                    bufferedWriter.newLine();
                }
            }
        }
        bufferedWriter.write("本次测试共出现异常"+num+"个");
        bufferedWriter.close();
        bufferedWriter.close();


    }
}

你可能感兴趣的:(java)